首页 > 解决方案 > 有什么办法可以让 JS 强类型化?

问题描述

JavaScript 是一种弱动态类型语言。我不介意动态类型,但是当我最不期待的时候,弱类型意味着对意外类型强制的很多挫败感。网上很多文章都声称可以解决这个问题,但都将弱类型与动态类型混为一谈,提出了诸如 TypeScript 之类的解决方案。我想要更类似于 Python 的类型行为的东西——动态类型变量,但没有隐式类型强制。有没有这样的语言或库?

标签: javascripttypestype-conversioncoerciontype-coercion

解决方案


不,不是,这就是构建打字稿的原因。
您的问题也与类似。看看,你可能会找到一些答案;)

也就是说,您可以使用一个好的 IDE,甚至Visual Studio 代码也尝试帮助他们进行Javscript 类型检查,值得一看。

这里是一个小的实现示例

//@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)

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


推荐阅读