Javascript 分解函数参数的TS语法
为什么在处理TS时,我必须为JS函数的传入参数指定一个类型来指定两个不同的文本 例如:Javascript 分解函数参数的TS语法,javascript,typescript,Javascript,Typescript,为什么在处理TS时,我必须为JS函数的传入参数指定一个类型来指定两个不同的文本 例如: export default function createGravatarImageUrl({ email }: { email: string }) { ... } 这里的参数绑定和类型做两件完全不同的事情: 参数binding{email}分解对象,将email变量绑定到该参数中的相应属性 类型可以是{email:string}的任何子类型,并将整个参数的类型限制为可能更具体的类型 您没有两次指定
export default function createGravatarImageUrl({ email }: { email: string }) {
...
}
这里的参数绑定和类型做两件完全不同的事情:
{email}
分解对象,将email
变量绑定到该参数中的相应属性{email:string}
的任何子类型,并将整个参数的类型限制为可能更具体的类型您没有两次指定参数,而是分别指定了解构操作和整个参数的类型。不幸的是,如果您想同时执行这两项操作并将类型指定为您已分解的类型,则没有快捷方式,但这是一个非常狭窄的情况。那么编译器知道类型吗?我不明白这个问题。你的问题是什么?“为什么?”似乎是基于观点,或者需要语言设计师作为权威来源。你似乎已经知道“怎么做?”,我想op已经明白了?不过我不确定。