![](/img/trans.png)
[英]Getting an unterminated string literal error..I can make it pass, but can't figure out why
[英]Why can't I return a string literal type in TS
我不明白以下錯誤:
type Prefix = 'Ms' | 'Mrs' | 'Mr'
const broken = <T extends Prefix>(prefix: T): T => {
// do something
return 'Ms';
// If I do `return 'Ms' as 'Ms'` then it works
}
const works = <T extends Prefix>(prefix: T): T => {
// do something
return p;
}
const alsoWorks = (): Prefix => {
// do something
return 'Ms';
}
broken
的方法給了我
類型“Ms”不可分配給類型“T”。 '"Ms"' 可分配給類型為'T' 的約束,但可以使用約束'Prefix' 的不同子類型來實例化'T'。
不知道為什么這種方法不起作用,但其他兩種方法?
TypeScript 抱怨以下調用不起作用:
const res: 'Mr' = broken<'Mr'>('Mr');
如果T
被實例化為Ms
以外的其他東西,則您的return 'Ms'
違反了返回類型T
。
我想你正在尋找 -
broken<Prefix>('Ms')
或者
broken('Ms' as Prefix)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.