2017-07-23 62 views
0

我有我的tsconfig noImplicitAny設置爲true。所以我很驚訝它允許我省略函數返回類型。我有一個getter函數,看起來像這樣:爲什麼TypeScript允許我省略函數的返回類型?

get name() { 
    return `${this.valueName} of ${this.suitName}`; 
} 

Q1:name()getter的返回類型是什麼?它是什麼?第二季度:如果它是任何,爲什麼這是允許的,因爲我有noImplicitAny設置爲true?

回答

2

noImplict任何配置都會強制您定義TypeScript無法推斷的類型。例如:

let x; 
function f(a) { 
    x = a; 
} 

沒有辦法在這裏打字稿可以確切地知道哪些類型應該是ax。這裏編譯器會警告你隱式地使用任何東西。

在此代碼:

get name() { 
    return `${this.valueName} of ${this.suitName}`; 
} 

打字稿可以推斷這裏你返回string

請注意,您不必定義每個參數或變量。這將是迂腐,在例如:

// Verbose 
const x : string = "hi"; 
// Compact yet enough 
const x = "hi"; 
相關問題