有啥办法可以让 JS 强类型化?
Posted
技术标签:
【中文标题】有啥办法可以让 JS 强类型化?【英文标题】:Is there any way to make JS strongly typed?有什么办法可以让 JS 强类型化? 【发布时间】:2021-06-05 13:36:15 【问题描述】:javascript 是一种弱动态类型语言。我不介意动态类型,但是当我最不期望的时候,弱类型意味着对意外类型强制的很多挫败感。网上很多文章都声称可以解决这个问题,但都将弱类型与动态类型混为一谈,提出了诸如 TypeScript 之类的解决方案。我想要更类似于 Python 的类型行为的东西——动态类型变量,但没有隐式类型强制。有没有这样的语言或库?
【问题讨论】:
【参考方案1】:不,它不是,这就是 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)
编辑 如果你真的想为网络提供一种强大的类型语言,你可以:
使用webassembly将你的python代码带入浏览器->https://github.com/wasmerio/wasmer-python 看看typescene framework,它声称是使用 TypeScript 制作的强大的 Web 应用程序框架:强类型,但老实说我从未测试过。【讨论】:
再次强调,这是静态类型,而不是强类型。我的意思是 Python 之类的东西。 @EnderShadow8 对于你的问题的标题“有没有办法让 JS 强类型化?”正如书面和解释的那样,对于“是否有一种语言或库可以做到这一点?”,响应是否定的。我已经更新了我的回复,请参阅edit
。希望对你有帮助以上是关于有啥办法可以让 JS 强类型化?的主要内容,如果未能解决你的问题,请参考以下文章