Mapped types are a powerful and unique feature of TypeScript's type system. They allow you to create a new type by transforming all properties of an existing type according to a given transformation function. In this lesson, we'll cover mapped types…
Typescript 2.5 adds JSDoc type assertion support for javascript file via ts-check service. First of all, you should make sure you have typescript@2.5 install: sudo npm i -g typescript@2.5 Then add @ts-check to the top of js file: // @ts-check This te…
TypeScript’s discriminated union types (aka tagged union types) allow you to model a finite set of alternative object shapes in the type system. The compiler helps you introduce fewer bugs by only exposing properties that are known to be safe to acce…
Sometimes we want our function arguments to be able to accept more than 1 type; e.g. a string or an array. This lesson will show us how to assign more than 1 type to a variable with Typescript union types and type aliases. type types = string | boole…
Conditional types take generics one step further and allow you to test for a specific condition, based on which the final type will be determined. We will look at how they work on a basic level and then leverage their power to allocate function types…
TypeScript has 'interface' and 'type', so when to use which? interface hasName { firstName: string; lastName: string; } interface hasAddress { address: string } type Player = (hasName & hasAddress) | null; let player: Player = {firstName: 'Joe', last…
Using the optional “+” sign together with mapped type modifiers, we can create more explicit and readable type declarations. We can also use the “-” (minus) sign to remove optional declarations from properties. For example, we have an interface: inte…
前言 Union Type和Intersection Type都是将多个类型结合起来的一个等价的"类型",它们并非是实际存在的类型. Union Type Union type(联合类型)使用比特或运算符|进行构造: A | B | C 注意:用|符号来构造Union Type类型只是Java语言的规定,|在这里不代表比特或的含义. 上例中,A | B | C是一个Union type,Union type的含义就是"或",只要满足其中一个即可. 实例:捕获多个异常…
代码如下: var query = from s in db.LoginUserServices join ss in db.Services on s.ServiceType equals ss.Code into s_ss_join from s_ss in s_ss_join.DefaultIfEmpty() where s.LoginUserID.Equals(LoginUserID) select new { // ServiceType = s.ServiceType, Servic…
This lesson introduces the --strictNullChecks compiler option and explains how non-nullable types differ from nullable types. It also illustrates how you can write safer code by being explicit about null and undefined in the type system. First of all…