23/10/2019, 19:17
Typescript 3.7 và các feature mới
Typescript 3.7 sẽ có 1 số tính năng mới. Null Coalescing // Use the first of firstResult/secondResult which is truthy: const result = firstResult || secondResult; // Use configValue from provided options if truthy, or 'default' if not: this.configValue = options.configValue || 'default'; ...
Typescript 3.7 sẽ có 1 số tính năng mới.
Null Coalescing
// Use the first of firstResult/secondResult which is truthy: const result = firstResult || secondResult; // Use configValue from provided options if truthy, or 'default' if not: this.configValue = options.configValue || 'default';
Trong trường hợp firstResult có các giá trị false hoặc 0. Kết quả của result sẽ là firstResult.
Với typescript 3.7 chúng ta có thể làm như sau.
// Use the first of firstResult/secondResult which is *defined*: const result = firstResult ?? secondResult; // Use configSetting from provided options if *defined*, or 'default' if not: this.configValue = options.configValue ?? 'default';
Optional Chaining
// To get data.key1.key2, if any level could be null/undefined: let result = data ? (data.key1 ? data.key1.key2 : undefined) : undefined; // Another equivalent alternative: let result = ((data || {}).key1 || {}).key2;
Trong trường hợp giá trị chúng ta tìm kiếm là nested object code sẽ trở nên khó check.
Với typescript 3.7 ta có thể làm như sau:
let result = data?.key1?.key2; // The same, through an array index or property, if possible: array?.[0]?.['key']; // Call a method, but only if it's defined: obj.method?.(); // Get a property, or return 'default' if any step is not defined: let result = data?.key1?.key2 ?? 'default';