function fn(x) {
return x.flip();
}
const user = {
name: "Daniel",
age: 26,
};
user.location;
// js에서는 undefined 를 반환
// ts애서는 오류를 반환
/*
Property 'location' does not exist on type '{ name: string; age: number; }'.
*/
npm install -g typescript
tsc filename.ts
// output : 같은 폴더 경로에 filename.js 가 생성됨.
tsc --noEmitOnError hello.ts
function getFavoriteNumber(age: string) :number {
return parseInt(age);
}
// 매개 변수의 타입은 객체로 표기되고 있습니다.
function printCoord(pt: { x: number; y: number }) {
console.log("The coordinate's x value is " + pt.x);
console.log("The coordinate's y value is " + pt.y);
}
printCoord({ x: 3, y: 7 });
function printName(obj: { first: string; last?: string }) {
// ...
}
// 둘 다 OK
printName({ first: "Bob" });
printName({ first: "Alice", last: "Alisson" });
function printId(id: number | string) {
console.log("Your ID is: " + id);
}
// OK
printId(101);
// OK
printId("202");
// 오류
printId({ myID: 22342 });
function printId(id: number | string) {
console.log(id.toUpperCase());
/*
Property 'toUpperCase' does not exist on type 'string | number'.
Property 'toUpperCase' does not exist on type 'number'.
*/
}
function printId(id: number | string) {
if (typeof id === "string") {
// 이 분기에서 id는 'string' 타입
console.log(id.toUpperCase());
} else {
// 여기에서 id는 'number' 타입
console.log(id);
}
}
type Point = {
x: number;
y: number;
};
function printCoord(pt: Point) {
console.log("The coordinate's x value is " + pt.x);
console.log("The coordinate's y value is " + pt.y);
}
printCoord({ x: 100, y: 100 });
type ID = number | string;
const myCanvas = document.getElementById("main_canvas") as HTMLCanvasElement;
const myCanvas = <HTMLCanvasElement>document.getElementById("main_canvas");
// 문자 리터럴 타입
function printText(s: string, alignment: "left" | "right" | "center") {
// ...
}
printText("Hello, world", "left"); // 잘 동작
printText("G'day, mate", "centre"); // 에러 발생
let x: "hello" = "hello";
x = "hello"; // OK
x = "howdy"; // 에러 발생 ...
// 숫자 리터럴 타입
function compare(a: string, b: string): -1 | 0 | 1 {
return a === b ? 0 : a > b ? 1 : -1;
}
function doSomething(x: string | undefined) {
if (x === undefined) {
// 아무 것도 하지 않는다
} else {
console.log("Hello, " + x.toUpperCase());
}
}
function fn(x) {
return x.flip();
}
const user = {
name: "Daniel",
age: 26,
};
user.location;
// js에서는 undefined 를 반환
// ts애서는 오류를 반환
/*
Property 'location' does not exist on type '{ name: string; age: number; }'.
*/
npm install -g typescript
tsc filename.ts
// output : 같은 폴더 경로에 filename.js 가 생성됨.
tsc --noEmitOnError hello.ts
function getFavoriteNumber(age: string) :number {
return parseInt(age);
}
// 매개 변수의 타입은 객체로 표기되고 있습니다.
function printCoord(pt: { x: number; y: number }) {
console.log("The coordinate's x value is " + pt.x);
console.log("The coordinate's y value is " + pt.y);
}
printCoord({ x: 3, y: 7 });
function printName(obj: { first: string; last?: string }) {
// ...
}
// 둘 다 OK
printName({ first: "Bob" });
printName({ first: "Alice", last: "Alisson" });
function printId(id: number | string) {
console.log("Your ID is: " + id);
}
// OK
printId(101);
// OK
printId("202");
// 오류
printId({ myID: 22342 });
function printId(id: number | string) {
console.log(id.toUpperCase());
/*
Property 'toUpperCase' does not exist on type 'string | number'.
Property 'toUpperCase' does not exist on type 'number'.
*/
}
function printId(id: number | string) {
if (typeof id === "string") {
// 이 분기에서 id는 'string' 타입
console.log(id.toUpperCase());
} else {
// 여기에서 id는 'number' 타입
console.log(id);
}
}
type Point = {
x: number;
y: number;
};
function printCoord(pt: Point) {
console.log("The coordinate's x value is " + pt.x);
console.log("The coordinate's y value is " + pt.y);
}
printCoord({ x: 100, y: 100 });
type ID = number | string;
const myCanvas = document.getElementById("main_canvas") as HTMLCanvasElement;
const myCanvas = <HTMLCanvasElement>document.getElementById("main_canvas");
// 문자 리터럴 타입
function printText(s: string, alignment: "left" | "right" | "center") {
// ...
}
printText("Hello, world", "left"); // 잘 동작
printText("G'day, mate", "centre"); // 에러 발생
let x: "hello" = "hello";
x = "hello"; // OK
x = "howdy"; // 에러 발생 ...
// 숫자 리터럴 타입
function compare(a: string, b: string): -1 | 0 | 1 {
return a === b ? 0 : a > b ? 1 : -1;
}
function doSomething(x: string | undefined) {
if (x === undefined) {
// 아무 것도 하지 않는다
} else {
console.log("Hello, " + x.toUpperCase());
}
}
function fn(x) {
return x.flip();
}
const user = {
name: "Daniel",
age: 26,
};
user.location;
// js에서는 undefined 를 반환
// ts애서는 오류를 반환
/*
Property 'location' does not exist on type '{ name: string; age: number; }'.
*/
npm install -g typescript
tsc filename.ts
// output : 같은 폴더 경로에 filename.js 가 생성됨.
tsc --noEmitOnError hello.ts
function getFavoriteNumber(age: string) :number {
return parseInt(age);
}
// 매개 변수의 타입은 객체로 표기되고 있습니다.
function printCoord(pt: { x: number; y: number }) {
console.log("The coordinate's x value is " + pt.x);
console.log("The coordinate's y value is " + pt.y);
}
printCoord({ x: 3, y: 7 });
function printName(obj: { first: string; last?: string }) {
// ...
}
// 둘 다 OK
printName({ first: "Bob" });
printName({ first: "Alice", last: "Alisson" });
function printId(id: number | string) {
console.log("Your ID is: " + id);
}
// OK
printId(101);
// OK
printId("202");
// 오류
printId({ myID: 22342 });
function printId(id: number | string) {
console.log(id.toUpperCase());
/*
Property 'toUpperCase' does not exist on type 'string | number'.
Property 'toUpperCase' does not exist on type 'number'.
*/
}
function printId(id: number | string) {
if (typeof id === "string") {
// 이 분기에서 id는 'string' 타입
console.log(id.toUpperCase());
} else {
// 여기에서 id는 'number' 타입
console.log(id);
}
}
type Point = {
x: number;
y: number;
};
function printCoord(pt: Point) {
console.log("The coordinate's x value is " + pt.x);
console.log("The coordinate's y value is " + pt.y);
}
printCoord({ x: 100, y: 100 });
type ID = number | string;
const myCanvas = document.getElementById("main_canvas") as HTMLCanvasElement;
const myCanvas = <HTMLCanvasElement>document.getElementById("main_canvas");
// 문자 리터럴 타입
function printText(s: string, alignment: "left" | "right" | "center") {
// ...
}
printText("Hello, world", "left"); // 잘 동작
printText("G'day, mate", "centre"); // 에러 발생
let x: "hello" = "hello";
x = "hello"; // OK
x = "howdy"; // 에러 발생 ...
// 숫자 리터럴 타입
function compare(a: string, b: string): -1 | 0 | 1 {
return a === b ? 0 : a > b ? 1 : -1;
}
function doSomething(x: string | undefined) {
if (x === undefined) {
// 아무 것도 하지 않는다
} else {
console.log("Hello, " + x.toUpperCase());
}
}
function fn(x) {
return x.flip();
}
const user = {
name: "Daniel",
age: 26,
};
user.location;
// js에서는 undefined 를 반환
// ts애서는 오류를 반환
/*
Property 'location' does not exist on type '{ name: string; age: number; }'.
*/
npm install -g typescript
tsc filename.ts
// output : 같은 폴더 경로에 filename.js 가 생성됨.
tsc --noEmitOnError hello.ts