Here are a few examples of potential "burning
questions" that someone might have about TypeScript, along with sample
code that could cause errors:
1. How do I define and use interfaces in TypeScript?
interface User {
name: string;
age: number;
}
const user: User = {
name: "John",
age: 30,
// Error: Property 'email' is missing in type '{ name: string; age: number; }' but required in type 'User'.
email: "john@example.com"
};
2. How do I use classes and inheritance in TypeScript?
class Animal {
public name: string;
constructor(name: string) {
this.name = name;
}
public speak(): string {
return "I'm an animal!";
}
}
class Dog extends Animal {
public breed: string;
constructor(name: string, breed: string) {
super(name);
this.breed = breed;
}
// Error: Method 'speak' has a return type of 'string', but the return type of the overridden method 'speak' in the base class is 'void'.
public speak(): string {
return `I'm a ${this.breed} dog!`;
}
}
3. How do I create and use generics in TypeScript?
function identity<T>(arg: T): T {
return arg;
}
// Error: Type '"hello"' is not assignable to type 'number'.
const result: number = identity("hello");
4. How do I use type guards and type assertions in TypeScript?
function isNumber(x: any): x is number {
return typeof x === "number";
}
if (isNumber(42)) {
// Error: Type 'number' is not assignable to type 'string'.
const str: string = 42;
}
5. How do I set up and configure a TypeScript project in my
code editor or build system?
// tsconfig.json
{
"compilerOptions": {
"module": "commonjs",
// Error: Option 'esModuleInterop' cannot be specified with option 'module'.
"esModuleInterop": true
}
}
6. How do I use third-party libraries and modules with
TypeScript?
import * as _ from "lodash";
// Error: Cannot find module 'lodash'.
console.log(_.sum([1, 2, 3]));
7. How do I debug and troubleshoot TypeScript code?
function add(x: number, y: number): number {
return x + y;
}
// Error: Argument of type '"hello"' is not assignable to parameter of type 'number'.
console.log(add(1, "hello"));
function add(x: number, y: number): number {
return x + y;
}
// Error: Argument of type '"hello"' is not assignable to parameter of type 'number'.
console.log(add(1, "hello"));
8. How do I take advantage of advanced TypeScript features like
decorators and mixins?
function logMethod(target: any, key: string, descriptor:
No comments:
Post a Comment