關於JS ++中的靜態類型,爲什麼我們不能使用外部聲明作爲類型?例如:爲什麼不能將外部聲明用作類型?
external Uint8Array;
class ByteArray
{
Uint8Array[] composingArrays;
}
的JS ++編譯器終止該示數Uint8Array
不能使用「這裏」,並期望一個類型。有任何想法嗎?
關於JS ++中的靜態類型,爲什麼我們不能使用外部聲明作爲類型?例如:爲什麼不能將外部聲明用作類型?
external Uint8Array;
class ByteArray
{
Uint8Array[] composingArrays;
}
的JS ++編譯器終止該示數Uint8Array
不能使用「這裏」,並期望一個類型。有任何想法嗎?
不能使用JavaScript類型作爲JS ++中的類型。
的external type概念(有時稱爲統一外部類型)在JS ++意味着所有的JavaScript類型編譯期間爲處理一種類型。 (該一種類型作爲external
類型。在運行時,external
解開,並且可以在運行時任何JavaScript類型。)
的JS ++型系統基本上是外部類型(統一成一個外部型),內部類型(所有的JS ++類型,包括原始類型,數組,用戶定義類型等)以及它們之間的轉換。
一個編寫代碼正確的方法是:可以與外部類型聲明的東西報表
external Uint8Array;
class ByteArray
{
var composingArrays;
ByteArray(int size) {
this.composingArrays = new Uint8Array(size);
}
}
例子包括:
返回值,因爲Uint8Array
已鍵入external
功能,你需要的類型匹配(或它們之間可能的轉換)。由於var
創建了一個類型爲external
的變量,並且實例化的Uint8Array
的類型爲external
,因此類型將匹配。
在更高級的用法中,您可以查看哪些類型的靜態類型爲external
,運行時類型爲Uint8Array
。
所以'var'只是一個'external'別名。我認爲'自動'的東西也會有幫助。 – Hydro
我不會稱之爲別名,但這聽起來像是一個新的單獨問題的話題。 –
是的,我的意思是說。 – Hydro