Learning TypeScript 2.x
上QQ阅读APP看书,第一时间看更新

Object literals

Objects can be initialized using new Object(), Object.create(), or using the object literal notation, also known as initializer notation. An object initializer is a comma-delimited list of zero or more pairs of property names and values of an object, enclosed in curly braces:

let person = { name: "Remo", age: 28 };

The type inference system can automatically infer the type of object literals. The inferred type for the variable person declared in the preceding code snippet is { name: string, age: number }. Alternatively, we can explicitly declare the type of an object literal:

interface User {
name: string;
age: number;
}

let person: User = { name: "Remo", age: 28 }; // OK

It is also possible to declare optional properties:

interface User {
name: string;
age?: number;
}


let person1: User = { name: "Remo", age: 28 }; // OK
let person2: User = { name: "Remo" }; // OK
Please refer to Chapter 1 , Introducing TypeScript, to learn more about the difference between the empty object type ( {}), the Object (uppercase) type, and the object (lowercase) type.