typealias 是用來(lái)為已經(jīng)存在的類(lèi)型重新定義名字的斤儿,通過(guò)命名裹虫,可以使代碼變得更加清晰飞盆。使用的語(yǔ)法也很簡(jiǎn)單娄琉,使用 typealias 關(guān)鍵字像使用普通的賦值語(yǔ)句一樣次乓,可以將某個(gè)已經(jīng)存在的類(lèi)型賦值為新的名字
示例:
typealias strs=String
let str:strs="string"
print(str)
打印string
對(duì)于普通類(lèi)型并沒(méi)有什么難點(diǎn),但是在涉及到泛型時(shí)孽水,情況就稍微不太一樣票腰。首先,typealias 是單一的女气,也就是說(shuō)你必須指定將某個(gè)特定的類(lèi)型通過(guò) typealias 賦值為新名字杏慰,而不能將整個(gè)泛型類(lèi)型進(jìn)行重命名。下面這樣的命名都是無(wú)法通過(guò)編譯的:
class CompletionTask<T>{
}
錯(cuò)誤代碼:
typealias Completion=CompletionTask
typealias Completion=CompletionTask<T>
typealias Completion<T>=CompletionTask<T>
正確代碼
typealias Completion=CompletionTask<String>
或者
typealias task=String
typealias Completion=CompletionTask<task>