不是很確定你看的是哪一本書
不過在 Programming language 的定義上是這樣:
型別檢查 (type checking):
檢查變數的型別,避免對變數做出不符合其型別的操作 (ex 使用不合法的運算或取用不存在的物件成員)
強型別 (strong type-checking):
compiler / interpreter 永遠會進行型別檢查,目前大部分主流程式語言都屬於強型別,包括 Java、C#、Python、JavaScript
弱型別 (weak type-checking):
compiler / interpreter 允許在某些情況下略過型別檢查,可能會造成未定義行為 (undefined behavior),如 assembly、C/C++
靜態型別 (static type-checking):
在 compile-time 進行型別檢查,如 Java、C#
動態型別 (dynamic type-checking):
在 runtime 進行型別檢查,如 Python、JavaScript
許多靜態型別語言仍然會保留部分動態型別的特性,比如說 RTTI 或是 reflection 都算是動態型別檢查的應用。