Static field (static field)
Trong Java và PHP có khái niệm static field. Field thông thường là property của instance, nhưng static field là property của class. Trong Java và PHP có thể khai báo static field bằng từ khóa static.
Javajavaclass SomeClass {public static Integer field = 123;}class Main {public static void main(String[] args) {System.out.println(SomeClass.field); //=> 123}}
Javajavaclass SomeClass {public static Integer field = 123;}class Main {public static void main(String[] args) {System.out.println(SomeClass.field); //=> 123}}
PHPphpclass SomeClass{public static $field = 123;}var_dump(SomeClass::$field); //=> int(123)
PHPphpclass SomeClass{public static $field = 123;}var_dump(SomeClass::$field); //=> int(123)
JavaScript và TypeScript cũng có thể khai báo static field bằng từ khóa static.
TypeScripttsclassSomeClass {staticfield : number = 123;}console .log (SomeClass .field );
TypeScripttsclassSomeClass {staticfield : number = 123;}console .log (SomeClass .field );
Type inference cho static field
Static field của TypeScript được suy luận kiểu từ giá trị khởi tạo nếu có giá trị khởi tạo. Do đó có thể bỏ qua type annotation cho field.
tsclassSomeClass {staticfield = 123;}
tsclassSomeClass {staticfield = 123;}
Static field và access modifier
Static field của TypeScript có thể kết hợp với access modifier.
tsclassSomeClass {private staticfield : number;}
tsclassSomeClass {private staticfield : number;}
📄️ Access modifier
Trong các ngôn ngữ như Java hay PHP, có thể chỉ định private, protected, public cho field và method. JavaScript cũng có spec Private class fields để thực hiện property kiểu private, nhưng hơi khác với access modifier kiểu Java. TypeScript có access modifier theo phong cách Java.
Static field chỉ đọc
Static field của TypeScript trở thành chỉ đọc khi thêm readonly modifier.
tsclassSomeClass {static readonlyfield : number;}
tsclassSomeClass {static readonlyfield : number;}
📄️ Readonly modifier trong class
Trong TypeScript, thêm readonly modifier cho field để biến field đó thành chỉ đọc.