【发布时间】:2020-12-02 17:53:25
【问题描述】:
我有一个 js 函数,它输出一个包含 3 个数字的数组。 我可以定义一个类型/接口/任何将数组视为对象的东西。
这样Somethig.GetVector().X 就会转译成Something.GetVector()[0]
【问题讨论】:
标签: typescript typescript-definitions
我有一个 js 函数,它输出一个包含 3 个数字的数组。 我可以定义一个类型/接口/任何将数组视为对象的东西。
这样Somethig.GetVector().X 就会转译成Something.GetVector()[0]
【问题讨论】:
标签: typescript typescript-definitions
不,TypeScript 转换不能那样工作。
您可以定义一个扩展数组的TypeScript接口:
interface ExtArr extends Array<string> {
extProp?: string
}
const a: ExtArr = ['foo', 'bar', 'baz']
a.extProp = 'quux'
但是,类型信息转译为空 - 它仅由 TypeScript 使用,而不是 JavaScript。
或者,您可以定义一个函数,将数组转换为具有友好属性名称的对象。听起来这可能是您想要的用例:
const makeFriendly = (unfriendlyArray: string[] /* or whatever type */) => {
const [ propName1, propName2, propName3 ] = unfriendlyArray
return { propName1, propName2, propName3 }
}
makeFriendly(['foo', 'bar', 'baz']) // { propName1: "foo", propName2: "bar", propName3: "baz" }
【讨论】: