TS-Type=JS ?

-- Views

September 21, 25

スライド概要

#fec_tokyo 2025/09/21

profile-image

Web Developer in Japan

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

ダウンロード

関連スライド

各ページのテキスト
1.

- Type = #fec_tokyo 2025/09/21 ?

5.

JS + Type

6.

Google Closure Compiler

8.

??

9.

main.c compile a.out exec > "hello world" main.java compile main.class exec > "hello world" VM main.ts compile main.js exec > "hello world" VM

11.

Type

12.

Type ● syntax ● check/infer

13.

main.ts compile main.js exec > "hello world" VM TypeCheck TypeStrip

14.

compile 🤔

15.

compile 🤔

16.

de-sugar compile minify 🤔

17.

de-sugar compile 🤔 y nif mi

18.

Enums Namespaces Decorators ... 🤔 Extending Type Language... ● syntax ● check/infer

19.

Enums Namespaces Decorators ... Type Not Recommended ?? ● syntax ● check/infer 🤔

20.

Enums Namespaces Decorators ... Type ● syntax ● check/infer 🤔

21.

main.ts compile main.js exec > "hello world" VM TypeCheck TypeStrip

22.

TSC TypeCheck isTypeCheck too Slow main.ts compile main.js exec > "hello world" VM TypeStrip

23.

Chance To 🤩 Re-Implement !! Not 😱 Documented ...

24.

TypeScript Parsers TS/JS Rust Go 🤔 Zig Why so many Parsers ... ?

25.

Performance Battle

26.

TypeStrip = Type Check-Less Compile tsc swc

27.

TSC (Language Server) P LS main.ts TypeCheck compile main.js exec > "hello world" VM TypeStrip

28.

TSC (Language Server) P LS main.ts TypeCheck 🤔 run TypeStrip Run on v8 is Deno a TypeScript runtine ?

30.

TSC (Language Server) TypeStrip TypeCheck Run on v8 P LS run TypeStrip main.ts run Run on v8 🤔 is Node a TypeScript runtine ?

31.

😳

32.

Don't we consider Type only as an annotation? 🤔

33.

Type as Annotation

34.

Stage: 1

35.

class Person { name: string; constructor(name: string) { this.name = name; } TypeScript getGreeting(): string { return Hello, ${this.name}; } }

36.

Types as Annotation class Person { name /*: string*/; constructor(name /*: string*/) { this.name = name; } getGreeting()/*: string*/ { return Hello ${this.name}; } }

37.

Standardise TypeScript in ECMA

38.

const name: string = "Jxck" Treat as Comment

39.

const name: ここはどうせコメント なので何を書いても 怒られない??🤔 = "Jxck"

40.

Brand new World !! 🤩🤩🤩

41.

SQL as Comments const user: logging(warn) = "Jxck"

42.

Cooments as Comments const regist: (FIXME) regist って 日本語は無いって 何度言ったら、、 = true

43.

Decorator as comments const user: select id, name from Users where user id = "Jxck"

44.

Brain f**k as comments const user: ++++++++[>++++++++++++++<-]>+++.< >+.< >--.< >---------.< >+++++.< >-------.< = "Jxck"

45.

TSC (Language Server) TypeStrip Run on v8 TypeCheck P LS run TypeStrip Run on v8 main.ts run TypeStrip Run on v8 run 🤔 Then is Browser a TypeScript runtine ?

46.

main.c compile a.out exec > "hello world" main.java compile main.class exec > "hello world" VM main.ts TypeStrip 🤔 main.js exec > "hello world" VM Language... ?

47.

🤔 Type as External Annotation ?

50.

Type ● check/infer ● syntax ● lint/fmt ● tree shake ● bundle ● minify ● JSX ● Testing ● ... Enums Namespaces Decorators ...

51.

TSC (Language Server) P LS TypeCheck TS CodeBases build bundle.js exec > "hello world" VM ● TypeStrip ● Treshake ● Bundle ● Minify

52.

Type ● check/infer ● syntax ● lint/fmt ● tree shake ● bundle ● minify ● JSX ● Testing ● ... 💥The Wild West💥of frontend toolchains !! 🤩🤩🤩

54.

TSC (Language Server) P LS TypeCheck TS CodeBases build bundle.js exec > "hello world" VM ● TypeStrip ● Treshake ● Bundle ● Minify

56.

TypeScript Parsers TS/JS Rust Go Zig 😳‼

57.

TypeScript Parsers TS/JS Rust Go Zig Great Migration ? ��

58.

● AI 出すと互換性の問題があるからあまりやりたくない。 ● IPC なら中⾝は隠せるからあり。 ● そもそも Go 実装ツールためではなく、 JS のためにやってる。 ● どうしてもやりたいなら fork して好きにイジるのがいい。 ● バージョン管理での合意が取れるならまだ、、でも難しくない?

59.

TypeScript Parsers TS/JS Rust Go 🤔 Zig Fast parser is still required...

60.

TSC (Language Server) P LS TypeCheck TS CodeBases build bundle.js exec > "hello world" VM ● TypeStrip ● Treshake ● Bundle ● Minify

61.

Type Aware Linting TS CodeBases Type Aware Parse 🤔 Who covers here ? Lint TS CodeBases

63.

Type Aware Linting TS CodeBases Type Aware Parse Lint 🤩 TS CodeBases

64.

TSC (Language Server) P LS TypeCheck TS CodeBases build bundle.js exec > "hello world" Li nt VM TypeCheck ● TypeStrip ● Treshake Type Aware Linting ● Bundle ● Minify

65.

TSC Development (Language Server) Experience P LS TypeCheck TS CodeBases bundle.js build exec > "hello world" Li nt VM TypeCheck ● TypeStrip ● Treshake Type Aware Linting Deployment Experience ● Bundle ● Minify

66.

TypeCheck 🤔

67.

Type ● check/infer ● syntax ● lint/fmt ● tree shake ● bundle ● minify ● JSX ● Testing ● ... Enums Namespaces Decorators ...

68.

+ Type =

69.

- Type =

70.

+ Type as Annotation =

71.

+ ● TypeCheck ● Lint+Fmt ● Testing = Better DX

72.

Enums Namespaces Decorators ... Despite not being a programming language, Type tried to act like one? ● syntax ● check/infer 🤔

73.

Do we really expect TypeScript to be a programming language? 🤔

74.

We really expect TypeScript to be a Ultra Fast Type Checker !! 🤩