如何解决使用类型声明方法
我知道如何使用类型来声明类函数
type myType = (val: number) => void;
class myClass {
myFunction1 = function (val) { }
myFunction1Typed : myType = function (val) { }
}
但是,我不知道如何使用方法符号来做同样的事情
type myType = (val: number) => void;
class myClass {
myMethod (val) { }
myMethodTyped : myType (val) { } // not valid !!!!!!
}
我在文档中找不到任何关于此的内容
我的问题是我有大量声明为方法的类代码库(我发布的第二个示例)。
现在,我们开始逐步介绍一些函数的类型。
我们当然可以随时更改函数的声明,但如果我们能坚持我们当前的风格并以某种方式添加类型会更容易。
解决方法
我很确定您的第二次语法尝试在 TypeScript 中根本无效/不支持。这也可能是您在文档中找不到任何相关内容的原因。
请注意,TypeScript 基本上只是对强类型提供额外支持的 JavaScript。除了少数例外(在这种情况下,TypeScript 编译器会处理将某些花哨的 TypeScript 表达式编译/转换为合法的目标 JavaScript 表达式),如果你去掉所有 TypeScript 特定的东西,你在 TypeScript 中编写的所有内容基本上应该仍然是合法的 JavaScript。
TypeScript 可以推断和推断很多,但不是全部。您的显式 myType
类型只能用于确保在 myMethodTyped
类中相应地实现 myClass
方法时不会犯任何与数据类型相关的错误。
另请注意,除了类型之外,TypeScript 还提供了接口的概念,以确保您的函数、方法、类等经过强类型检查。但我不确定在您的情况下使用接口是否是更好的选择。类型和接口都有自己的优点和缺点,因此您可以决定使用哪个功能。
,我很确定没有办法做到这一点。你能得到的最接近的是使用接口:
interface IMyClass {
myMethod(val: any): number;
}
class MyClass implements IMyClass {
myMethod(val: any) {
return 5;
}
}
所以我的意思是这两个界面略有不同:
interface IMyClass {
myMethod(val: any): number;
}
interface IMyClass2 {
myMethod: (val: any) => number;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。