簡體   English   中英

無法讓 babel 在 typescript 上使用插值編譯字符串文字類型

[英]Can't get babel to compile string literal type with interpolation on typescript

我有一個使用 typescript 的反應應用程序,我需要使用帶插值的文字字符串類型創建類型:

class ExampleClass {
    product_id!: number;
    product_name!: string;
}

export type HeaderClassNames<N extends string> = `theader_${Lowercase<N>}`;

type HeaderClasses = HeaderClassNames<keyof ExampleClass>;

“HeaderClasses”產生:

type HeaderClasses = "theader_product_id" | "theader_product_name"

tsc 可以正常工作,但是當 babel 轉譯時,它無法識別模板:

Unexpected token (8:72)

   6 | 
   7 | export type TableHeaderConfig<Keys extends string> = Record<Keys, TableHeaderColumn>;
>  8 | export type HeaderClassNames<N extends string> = `theader_${Lowercase<N>}`;
     |                                                                         ^
   9 | export type ColumnClassNames<N extends string> = `column_${Lowercase<N>}`;
  10 | 

Babel說它開始支持這個功能,但是我安裝並重新安裝了 babel/core,甚至手動嘗試了 babel/parser(提交的地方),但沒有任何改變。

感謝你的幫助。

經過大量挖掘,我發現正在使用的 babel 版本是 react-app-rewired 和 react-scripts 包中的那個。 幾個小時后,你的頭就不再工作了。

我更新了它們,一切正常。

感謝所有花一分鍾時間提供幫助的人。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM