有没有办法让 JS 强类型化?

问题描述

JavaScript 是一种弱动态类型语言。我不介意动态类型,但是弱类型意味着在我最不希望出现的意外类型强制时遇到很多挫折。网上很多文章都声称可以解决这个问题,但他们都将弱类型与动态类型混淆,并提出了诸如 TypeScript 之类的解决方案。我想要更类似于 Python 的类型行为的东西 - 动态类型变量但没有隐式类型强制。有没有一种语言或图书馆可以做到这一点?

解决方法

不,不是,这就是构建 typescript 的原因。
您的问题也是 this 的重复。看看,你可能会找到一些答案;)

也就是说,您可以使用一个好的 IDE,甚至 visual studio code 尝试帮助他们的 Javscript type checking,值得一看。

这里有一个小的实现示例

//@ts-check

export class Dog {
  /**
  * @param {string} name
  * @param {number} age
  */
  constructor(name,age) {
    super()
    this.name = name
    this.age = age
  }

  speak () {
    console.log(`${this.name}: No! No more talk!`)
  }
}

new Dog(7,'Wez').speak() // <-- You should get an error here,it should be Dog('wez',7)

编辑
如果您真的想为网络使用强类型语言,您可以:

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...