網站搜尋

Deno REPL 無法識別 TypeScript 變數宣告


我在 Windows 10 上使用 Chocolatey 安裝了 Deno 1.0.5。我嘗試在 Deno REPL 中使用 TypeScript,但顯然如果指定了類型,它無法識別 TypeScript 變數聲明:

 C:\>deno
 Deno 1.0.5
 exit using ctrl+d or close()
 > let x: number;
 Uncaught SyntaxError: Unexpected token ':'
     at evaluate ($deno$/repl.ts:54:34)
     at Object.replLoop ($deno$/repl.ts:156:13)
 > let x: number = 42;
 Uncaught SyntaxError: Unexpected token ':'
     at evaluate ($deno$/repl.ts:54:34)
     at Object.replLoop ($deno$/repl.ts:156:13)
 > let x = 42;
 undefined
 > x
 42

我需要做什麼特別的事情才能讓 Deno CLI 支援 TypeScript 嗎?

答案#1

Deno REPL 尚不支援 TypeScript。

請參見以下舊問題:https://github.com/denoland/deno/issues/1158,該問題仍然開啟中。

Ryan Dahl 對一個新增 TS 支援的 PR 的評論:

2020年2月24日

給未來研究人員多一點背景資訊:有許多方法可以改善 REPL,而不需要引入 TS 編譯器。我們應該先做那些事情(例如改善 inspect、Tab 補全)。一旦我們的 REPL 達到與 Node 相同的水準,我們就可以開始研究如何透過使用 TypeScript 來突破這個水準。

答案#2

情況在2022年已經改變。

現在 deno repl 預設就支援 typescript:

deno
Deno 1.23.0
exit using ctrl+d or close()
> let x : number = 3
undefined
> x.
constructor           toFixed               toString              toLocaleString        __defineSetter__      __lookupGetter__      isPrototypeOf
toExponential         toPrecision           valueOf               __defineGetter__      hasOwnProperty        __lookupSetter__      propertyIsEnumerable

你唯一需要做的事情就是將你的 deno 可執行檔升級到更新的版本。

不確定這個功能究竟是什麼時候推出的。這裡是完整的更新日志以供參考:https://github.com/denoland/deno/blob/main/Releases.md