我的代码中已经按预期工作了。我想要的是使它变得冗长,使方法签名更加自我解释(我知道我可以使用Doc注释,但我也想使用 TypeScript 例如,可以通过TSLint进行更好的验证。
今天我有这个:
class Test{
testMetadada<T>(expression: (t: T) => void) {
// ...
}
}
expression
对象的类型为(t: T) => void
,这个解释不是很明确,我希望如下:
class Expression<T> extends (t: T) => void{
}
或
interface Expression<T> extends (t: T) => void{
}
或
let Expression = ((t: T) => void)<T>;
所以我的方法是这样的:
class Test{
testMetadada<T>(expression: Expression) {
// ...
}
}
Expression
代表函数(t: T) => void
。
我能用这种方式做什么?
请参阅here the example of what I'm trying to implement with this(将
Arrow function
of TypeScript用作元数据Lambda Expressions C#的可能性
答案 0 :(得分:2)
是使用类型别名
type Expression<T> = (t: T) => void
https://www.typescriptlang.org/docs/handbook/advanced-types.html
在你班上......
class Test {
testMetadada<T>(expression: Expression<T>) {
// ...
}
}