【发布时间】:2019-08-11 23:48:36
【问题描述】:
我想我已经知道这个问题的答案(即不可能),但我只是想确定一下,因为这将是一个很好的语言概念。
我发现我更喜欢编写像这样动态构建返回类型的代码:
function buildMyObject () {
const c = "a string"
return {
a : 6,
b : c
}
}
编译器确切知道返回类型的类型是什么,但是我可以在其他地方引用它吗,例如
function useMyObject(myObject : buildMyObject*) {
console.log(myObject.a)
}
(星号表示我想使用返回类型)
看来我不得不重新编写一个“类型”、“接口”或“类”,这些都感觉像是多余的代码
【问题讨论】:
-
1.如果你在重用它,它不是多余的...... 2.你可以定义一个类型为
myObject: { a : number, b: string } -
但是,正如@Oram 所说,如果您拥有
buildMyObject,我会亲自出于可读性/文档目的编写具体类型定义。但它根本不会影响代码行为。 -
给你:
function useMyObject(myObject: ReturnType<typeof buildMyObject>) ... -
太棒了!打字稿再次摇摆不定。我真的很感动
标签: typescript return-type type-systems