κ·Έλμ μ λ μ¬μ€ #514μ @pjmolina μ typescript νλ¬κ·ΈμΈμ μ’μν©λλ€. κ·Έλ¬λ κ²°κ΅ all
λ₯Ό λ°νν©λλ€.
λλ λΉμ μ΄ λ΄κ° μμ΄λ λ° λμμ΄λκΈ°λ₯Ό λ°λμ΅λλ€. μ€μ λ‘ peg
ꡬ문μ "μ΄λ₯Ό parse/1
μ λ°ν μ νμΌλ‘ μ§μ "νλ κ²μ μΆκ°νμ¬ parse/1
μλͺ
μ μ½κ° λ€λ₯΄κ² μμ±νκ³ μΆμ΅λλ€. λν out μ νμ΄ μλ κ²½μ° in μΈμ :string
λ₯Ό νμν©λλ€. κ·Έλ° λ€μ λ§μ§λ§ λ°ν κ°μ λ§Ήλͺ©μ μΌλ‘ μ ν λ³νν΄μΌ ν©λλ€.
νμ΄νμ€ν¬λ¦½νΈ(λλ νλ‘μ°νμ ) μ¬μ©μμκ² μ΄κ²μ λΉλ‘ κ°μ§μΌμ§λΌλ νμΈ κ°λ₯μ±μ μ€λν μν₯μ λ―ΈμΉ κ²μ λλ€.
μ΄λ κ² νλ €λ©΄ λͺ κ°μ μΉ΄νΈμΉλ Έλ₯Ό μ°νΈμΌλ‘ 보λ΄μΌ νλ©° μ΄λ€ μ£Όμλ‘ λ³΄λ΄μΌ ν©λκΉ?
μ€μ λ‘ νμν κ²μ ν¨μμ μλͺ μ΄ λ€μκ³Ό κ°μ΄ μμ±λλ κ²μ λλ€.
function parse(input: string): MyType { ... }
(λλ 무μμ΄λ )
@Mingun - ν₯λ―Έλ‘μ§λ§ μ΄ν΄νκΈ° λ§€μ° μ΄λ ΅μ΅λλ€.
μ£Όμμ μ¬κΈ°μμ κ±°μ μ΄μμ μΈ κ²½μ°μΈ κ² κ°μ΅λλ€. μ νμ΄ μλ κ°λ³ ꡬ문 λΆμ κ·μΉμ μ£Όμμ νμ©νμ¬ λ μ΄μμ μ€μ μ νμ λ°νν μ μμ΅λλ€.
( @Mingun λ λ¬μμμ΄λΌκ³ μ΄ν΄ν μ΄μν μκ°.)
μ¬μ€ TypeScriptλ λͺ¨λ κ³³μμ μ νμ μ£Όμμ λ¬μμΌ νκ³ μ ν μμ€ν μ΄ μ½κ° κΉ¨μ Έ μκΈ° λλ¬Έμ λ¬Έλ² κ°λ°μ λ μ½κ² λ§λ€μ§ μμ΅λλ€. μ΅κ·Όμ μ λ PEG.tsλ₯Ό λ§λλ κ²μ λν μμ μ€νμ νμ΅λλ€. TypeScriptμ μ ν κ²μ¬κΈ°λ μ¬κ· μ νμ μ 곡ν λ λλ΄μ§ λͺ»ν μ λλ‘ λμ°ν μ€λ₯ λ©μμ§λ₯Ό νμνμ΅λλ€.
Infernu μ§μμ μ΄ν΄λ³΄λ κ²μ΄ μ’μ΅λλ€.
@polkovnikov-ph - μ, κ·Έ μ νμ λ΄ μμ μμ§ μμΌλ©° κ²λ€κ° 1990λ λ C++ ν νλ¦Ώ κ°λ°μλ‘μ typescriptμ μ€λ₯ λ©μμ§λ λλ₯Ό λλ ΅κ² νμ§ μμ΅λλ€.
μ΄μ¨λ λ΄κ° νμν κ²μ νμ
μ€ν¬λ¦½νΈ μμ€ν
μ νμλ₯Ό μΆκ°ν μ μλ κ²μ΄λ―λ‘ parse/1
μμ νμ
μ€ν¬λ¦½νΈ μ£Όμμ μ»λ κ²μ΄ λμκ² κ°μΉκ° μμ΅λλ€.
μ§κΈμ κ·Έλ‘μ€ λ§μ€ν° νμ κ³Ό μΊμ€ν μΌλ‘ νκ³ μμ΅λλ€. λ΄κ° λ μν μ μμΌλ©΄ μ’κ² μ΄
μλ
! μ΄μ κ΄λ ¨νμ¬ νλ¬κ·ΈμΈ ts-pegjs
μμ νλ‘λμ
κ·μΉμ λν μ νμ μΆλ ₯ μ
λ ₯μ ꡬννμ΅λλ€. 11νΈ , ν보 16
returnTypes
μ΅μ
μ ν΅ν΄ "rule-name": "return-type"
μμ ν
μ΄λΈμ μ¬μ©νμ¬ μννμ΅λλ€.
DSL μμ€μμ pegjsμ λν μ ν μ 보λ₯Ό μ νμ μΌλ‘ μΆκ°νμ¬ νλ‘λμ
μ μ§μ μΆκ°νκΈ°λ‘ κ²°μ ν κ²½μ°λ₯Ό λλΉνμ¬ μ λ λΉμ μ μ°Έμ‘°ν©λλ€.
TypeScript μΆλ ₯, Flow λλ λ€λ₯Έ μ νμ JS λ³νμλ λ§€μ° μ μ©ν μ μμ΅λλ€.
μ¬λλ€μ #597μμ μ¬μ ν μ΄κ²μ μꡬνκ³ μμ΅λλ€.
μλ‘μ΄ κ΄λ¦¬μκ° .d.ts
λ₯Ό λ§λ€κ³ 보κ΄νμΌλ―λ‘ κ·Έλ λΆλͺ
ν typescriptμ μ΄λ € μμ΅λλ€.
μ΄κ²μ 5μ€μ μ½λμ κ΅μ²΄ es6 λͺ¨λ λ°λ₯κΈλ‘ μνν μ μλ μ£Όμ λ³κ²½ μ¬νμ΄ μλ λΉμΌ "νμ μ€ν¬λ¦½νΈκ° μμ΅λλ€"μ λλ€. λλ μ κ·Έκ²μ΄ μ΄λ£¨μ΄μ§μ§ μλμ§ μ΄ν΄νμ§ λͺ»νλ€.
0.11
μ λν ν¨μΉκ° μ€λΉλμ΄ μμ§λ§ 0.11
κ° λ³ν©λμ§ μκ³ 0.12
μ λν΄ μμ
ν μ μμ΅λλ€.
κ°μ₯ μ μ©ν λκΈ
μλ ! μ΄μ κ΄λ ¨νμ¬ νλ¬κ·ΈμΈ
ts-pegjs
μμ νλ‘λμ κ·μΉμ λν μ νμ μΆλ ₯ μ λ ₯μ ꡬννμ΅λλ€. 11νΈ , ν보 16returnTypes
μ΅μ μ ν΅ν΄"rule-name": "return-type"
μμ ν μ΄λΈμ μ¬μ©νμ¬ μννμ΅λλ€.DSL μμ€μμ pegjsμ λν μ ν μ 보λ₯Ό μ νμ μΌλ‘ μΆκ°νμ¬ νλ‘λμ μ μ§μ μΆκ°νκΈ°λ‘ κ²°μ ν κ²½μ°λ₯Ό λλΉνμ¬ μ λ λΉμ μ μ°Έμ‘°ν©λλ€.
TypeScript μΆλ ₯, Flow λλ λ€λ₯Έ μ νμ JS λ³νμλ λ§€μ° μ μ©ν μ μμ΅λλ€.