TypeScript에서 윙윙거리는 소리
                                            
                                                
                                                
                                                
                                                
                                                
                                                 18540 단어  typesystemstypescriptjavascript
                    
'쉬윙윙'이 뭐예요? 
'쉬쉬윙윙'은 간단한 게임으로 회사에서 할 수 있다.플레이어는 번갈아 처음부터 계산하지만, 반드시 다음과 같은 규칙을 준수해야 한다.
1단계: 숫자 
우선, 우리는 약간의 숫자가 필요하다.불행하게도, TypeScript에는 미리 정의된 디지털 시스템이 없기 때문에, 우리는 일부 문자를 포함하여 스스로 작성해야 한다.다행히도 우리는 자연수만 필요로 한다. 즉, easily defined:
type N = Z | S<unknown>
type Z = 0
type S<N> = [S]
이를 통해 우리는 다음과 같은 목적을 달성하기 위해 충분한 숫자 문자를 신속하게 정의할 수 있습니다.
type N1 = S<Z>
type N2 = S<N1>
// ...
type N14 = S<N13>
type N15 = S<N14>
우리는 단지 이 숫자들을 한 번 연산하여 숫자에서 하나를 빼는 방법일 뿐이다.
type Sub1<N> = N extends S<infer P> ? P : Z
다른 산수 연산은 독자에게 연습으로 남겨 두어야 한다.
이 모든 것이 정상인지 확인하기 위해서 TypeScript 해석기를 통해 프로그램을 실행해야 합니다.가장 빠른 방법은 VSCode에 다음 표현식을 쓰는 것입니다. 1
type TEST = Sub1<N3>
커서를 TEST 위에 놓습니다.표시된 해석 표현식을 볼 수 있을 것입니다.
 
 
2단계: 진실 
'동등'이나'소수'와 같은 검사를 사용하여 숫자의 속성을 테스트하기 위해서, 우리는 진가를 나타내는 대수가 필요하다.다행히도 이러한 상황에서 우리는 내장치를 사용할 수 있다.
type BOOL = true | false
이로써 우리는 숫자2에 대한 정의Equal와 LessThan를 차례로 정의할 수 있다
type Equal<Na, Nb> = {
    0: Nb extends Z ? true : false
    1: {
        0: false,
        1: Na extends S<infer Pa> ? Nb extends S<infer Pb>
            ? Equal<Pa, Pb>
            : never
            : never
    }[Nb extends Z ? 0 : 1]
}[Na extends Z ? 0 : 1]
type LessThan<Na, Nb> = {
    0: false,
    1: Na extends Z ? true
        : Na extends S<infer Pa> ? Nb extends S<infer Pb>
        ? LessThan<Pa, Pb>
        : never
        : never
}[Nb extends Z ? 0 : 1]
마찬가지로 수동으로 테스트할 수 있습니다.
type TEST = Equal<N1, N1>
 
 
3단계: 술어 
우리가 fizz buzz를 실현해야 하는 두 가지 중요한 술어는 IsMultipleOfThree이다.
type IsMultipleOfThree<T> = {
    1: true
    0: {
        0: false,
        1: IsMultipleOfFive<Sub1<Sub1<Sub1<T>>>>
    }[LessThan<T, N5> extends true ? 0 : 1]
}[Equal<T, N5> extends true ? 1 : 0]
매우 비슷함 IsMultipleOfFive:
type IsMultipleOfFive<T> = {
    1: true
    0: {
        0: false,
        1: IsMultipleOfFive<Sub1<Sub1<Sub1<Sub1<Sub1<T>>>>>>
    }[LessThan<T, N5> extends true ? 0 : 1]
}[Equal<T, N5> extends true ? 1 : 0]
상술한 방법과 유사한 방식으로 테스트를 작성하여 상술한 방법의 유효성을 증명할 수 있습니다.
재구성 
우리의 코드에는 다음과 같은 패턴이 반복됩니다.
type Ternary<B, P, Q> = {
    1: P,
    0: Q
}[B extends true ? 1 : 0]
우리는 현재 그것을 사용하여 이전의 정의의 가독성을 높일 수 있다. 3
type IsMultipleOfThree<T> = {
    1: true
    0: Ternary<LessThan<T, N3>,
                 false,
                 T extends S<S<S<infer P>>>
                    ? IsMultipleOfThree<P>
                    : never>
}[Equal<T, N3> extends true ? 1 : 0]
4단계: 쉬쉬하는 소리 
이제 우리는 마침내 우리의fizzbuzz 프로그램을 작성할 수 있게 되었다.가능한 출력을 정의해야 합니다.
type FIZZ = 'fizz'
type BUZZ = 'buzz'
type FIZZBUZZ = 'fizzbuzz'
이것은 우리가 이전에 정의한 Ternary 함수와 함께fizz buzz 프로그램을 매우 간결하고 표현적으로 작성할 수 있도록 합니다.
type FB<N> = Ternary<IsMultipleOfThree<N>,
    Ternary<IsMultipleOfFive<N>, FIZZBUZZ, FIZZ>,
    Ternary<IsMultipleOfFive<N>, BUZZ, N>>
위에서 설명한 대로 테스트(및 사용):
type TEST = FB<N15>
 
 
5단계: 한 단계 더 나아가기 
이 간단한 프로그램을 개선하기 위해 오류 메시지와 오류 처리를 추가할 수 있습니다.예를 들어, 지금 우리가 0에서 1을 빼면, 우리는 0을 얻고, 실제로 우리는 어떤 잘못을 보아야 한다.우리는 또 이런 잘못을 어떻게 처리해야 할지 생각해야 한다.
그 밖에 많은 울부짖는 연습은 이 조작을 여러 숫자에 동시에 응용하여 특정한 목록 구조로 진행해야 한다.마찬가지로 이러한 구조는 TypeScript에는 존재하지 않지만 위와 같은 방법으로 신속하게 정의할 수 있습니다.
마지막 생각 
경험이 적은 개발자들은 쉬쉬하는 윙윙거리는 소리를 해결하기 위해 자바스크립트를 사용할 수 있다. 자바스크립트는 TypeScript를 세분화하고 문법을 삽입하는 언어이다.예:
const fb = (n: number): number | string => (n % 3 === 0)
    ? ((n % 5 === 0) ? 'fizzbuzz' : 'fizz')
    : ((n % 5 === 0) ? 'buzz' : n)
그러나 분명히 이 코드는 자바스크립트로 작성된 것일 뿐, TypeScript 내장 값을 TypeScript로 작성된 것이 아니라, TypeScript로 작성된 것이다. 모두가 알다시피 TypeScript는 동적 형식과 해석의 프로그래밍 언어이다.
이 글은 켈 킹스베리(Kyle Kingsbury)this post의 계발을 받아 나에게 빛을 보여 주었다.
편집: 변경 실현, 왜냐하면 나는 할 수 있기 때문에...
VSCode는 표현식을 정확하게 계산하기 때문에 지금까지 사용할 수 있는 가장 좋은 TypeScript 해석기입니다.반대로 IntelliJ는 약간의 귀속이나 끼워 넣은 표현식을 계산할 수 없을 정도로 결함이 있다.이 해석기들의 인체공학은 모두 매우 기이하다. 만약 누군가가 편집기가 끼워져 있지 않은 간단한 타자 해석기를 작성할 수 있다면 좋겠다.  ↩ 
TypeScript 구문의 일부 특성은 반복적으로 작성하기 위해 약간의 간접성을 도입해야 한다는 것을 의미한다.이것은 다시 한 번 유감스럽다.  ↩ 
마찬가지로, TypeScript의 특성은 정의된 기호가 블록 밖의 동일한 표현식에서 직접 참조될 때 화가 나기 때문에 문법을 완전히 취소할 수 없다는 것을 의미하지만, 이것은 여전히 개선된 것이다.  ↩ 
                
                    
        
    
    
    
    
    
                
                
                
                
                    
                        
                            
                            
                            Reference
                            
                            이 문제에 관하여(TypeScript에서 윙윙거리는 소리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
                                
                                https://dev.to/gypsydave5/fizz-buzz-in-typescript-7ip
                            
                            
                            
                                텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                            
                            
                                
                                
                                 우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                            
                            
                        
                    
                
                
                
            
type N = Z | S<unknown>
type Z = 0
type S<N> = [S]
type N1 = S<Z>
type N2 = S<N1>
// ...
type N14 = S<N13>
type N15 = S<N14>
type Sub1<N> = N extends S<infer P> ? P : Z
type TEST = Sub1<N3>
'동등'이나'소수'와 같은 검사를 사용하여 숫자의 속성을 테스트하기 위해서, 우리는 진가를 나타내는 대수가 필요하다.다행히도 이러한 상황에서 우리는 내장치를 사용할 수 있다.
type BOOL = true | false
Equal와 LessThan를 차례로 정의할 수 있다type Equal<Na, Nb> = {
    0: Nb extends Z ? true : false
    1: {
        0: false,
        1: Na extends S<infer Pa> ? Nb extends S<infer Pb>
            ? Equal<Pa, Pb>
            : never
            : never
    }[Nb extends Z ? 0 : 1]
}[Na extends Z ? 0 : 1]
type LessThan<Na, Nb> = {
    0: false,
    1: Na extends Z ? true
        : Na extends S<infer Pa> ? Nb extends S<infer Pb>
        ? LessThan<Pa, Pb>
        : never
        : never
}[Nb extends Z ? 0 : 1]
type TEST = Equal<N1, N1>
 
 3단계: 술어 
우리가 fizz buzz를 실현해야 하는 두 가지 중요한 술어는 IsMultipleOfThree이다.
type IsMultipleOfThree<T> = {
    1: true
    0: {
        0: false,
        1: IsMultipleOfFive<Sub1<Sub1<Sub1<T>>>>
    }[LessThan<T, N5> extends true ? 0 : 1]
}[Equal<T, N5> extends true ? 1 : 0]
매우 비슷함 IsMultipleOfFive:
type IsMultipleOfFive<T> = {
    1: true
    0: {
        0: false,
        1: IsMultipleOfFive<Sub1<Sub1<Sub1<Sub1<Sub1<T>>>>>>
    }[LessThan<T, N5> extends true ? 0 : 1]
}[Equal<T, N5> extends true ? 1 : 0]
상술한 방법과 유사한 방식으로 테스트를 작성하여 상술한 방법의 유효성을 증명할 수 있습니다.
재구성 
우리의 코드에는 다음과 같은 패턴이 반복됩니다.
type Ternary<B, P, Q> = {
    1: P,
    0: Q
}[B extends true ? 1 : 0]
우리는 현재 그것을 사용하여 이전의 정의의 가독성을 높일 수 있다. 3
type IsMultipleOfThree<T> = {
    1: true
    0: Ternary<LessThan<T, N3>,
                 false,
                 T extends S<S<S<infer P>>>
                    ? IsMultipleOfThree<P>
                    : never>
}[Equal<T, N3> extends true ? 1 : 0]
4단계: 쉬쉬하는 소리 
이제 우리는 마침내 우리의fizzbuzz 프로그램을 작성할 수 있게 되었다.가능한 출력을 정의해야 합니다.
type FIZZ = 'fizz'
type BUZZ = 'buzz'
type FIZZBUZZ = 'fizzbuzz'
이것은 우리가 이전에 정의한 Ternary 함수와 함께fizz buzz 프로그램을 매우 간결하고 표현적으로 작성할 수 있도록 합니다.
type FB<N> = Ternary<IsMultipleOfThree<N>,
    Ternary<IsMultipleOfFive<N>, FIZZBUZZ, FIZZ>,
    Ternary<IsMultipleOfFive<N>, BUZZ, N>>
위에서 설명한 대로 테스트(및 사용):
type TEST = FB<N15>
 
 
5단계: 한 단계 더 나아가기 
이 간단한 프로그램을 개선하기 위해 오류 메시지와 오류 처리를 추가할 수 있습니다.예를 들어, 지금 우리가 0에서 1을 빼면, 우리는 0을 얻고, 실제로 우리는 어떤 잘못을 보아야 한다.우리는 또 이런 잘못을 어떻게 처리해야 할지 생각해야 한다.
그 밖에 많은 울부짖는 연습은 이 조작을 여러 숫자에 동시에 응용하여 특정한 목록 구조로 진행해야 한다.마찬가지로 이러한 구조는 TypeScript에는 존재하지 않지만 위와 같은 방법으로 신속하게 정의할 수 있습니다.
마지막 생각 
경험이 적은 개발자들은 쉬쉬하는 윙윙거리는 소리를 해결하기 위해 자바스크립트를 사용할 수 있다. 자바스크립트는 TypeScript를 세분화하고 문법을 삽입하는 언어이다.예:
const fb = (n: number): number | string => (n % 3 === 0)
    ? ((n % 5 === 0) ? 'fizzbuzz' : 'fizz')
    : ((n % 5 === 0) ? 'buzz' : n)
그러나 분명히 이 코드는 자바스크립트로 작성된 것일 뿐, TypeScript 내장 값을 TypeScript로 작성된 것이 아니라, TypeScript로 작성된 것이다. 모두가 알다시피 TypeScript는 동적 형식과 해석의 프로그래밍 언어이다.
이 글은 켈 킹스베리(Kyle Kingsbury)this post의 계발을 받아 나에게 빛을 보여 주었다.
편집: 변경 실현, 왜냐하면 나는 할 수 있기 때문에...
VSCode는 표현식을 정확하게 계산하기 때문에 지금까지 사용할 수 있는 가장 좋은 TypeScript 해석기입니다.반대로 IntelliJ는 약간의 귀속이나 끼워 넣은 표현식을 계산할 수 없을 정도로 결함이 있다.이 해석기들의 인체공학은 모두 매우 기이하다. 만약 누군가가 편집기가 끼워져 있지 않은 간단한 타자 해석기를 작성할 수 있다면 좋겠다.  ↩ 
TypeScript 구문의 일부 특성은 반복적으로 작성하기 위해 약간의 간접성을 도입해야 한다는 것을 의미한다.이것은 다시 한 번 유감스럽다.  ↩ 
마찬가지로, TypeScript의 특성은 정의된 기호가 블록 밖의 동일한 표현식에서 직접 참조될 때 화가 나기 때문에 문법을 완전히 취소할 수 없다는 것을 의미하지만, 이것은 여전히 개선된 것이다.  ↩ 
                
                    
        
    
    
    
    
    
                
                
                
                
                    
                        
                            
                            
                            Reference
                            
                            이 문제에 관하여(TypeScript에서 윙윙거리는 소리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
                                
                                https://dev.to/gypsydave5/fizz-buzz-in-typescript-7ip
                            
                            
                            
                                텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                            
                            
                                
                                
                                 우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                            
                            
                        
                    
                
                
                
            
type IsMultipleOfThree<T> = {
    1: true
    0: {
        0: false,
        1: IsMultipleOfFive<Sub1<Sub1<Sub1<T>>>>
    }[LessThan<T, N5> extends true ? 0 : 1]
}[Equal<T, N5> extends true ? 1 : 0]
type IsMultipleOfFive<T> = {
    1: true
    0: {
        0: false,
        1: IsMultipleOfFive<Sub1<Sub1<Sub1<Sub1<Sub1<T>>>>>>
    }[LessThan<T, N5> extends true ? 0 : 1]
}[Equal<T, N5> extends true ? 1 : 0]
우리의 코드에는 다음과 같은 패턴이 반복됩니다.
type Ternary<B, P, Q> = {
    1: P,
    0: Q
}[B extends true ? 1 : 0]
type IsMultipleOfThree<T> = {
    1: true
    0: Ternary<LessThan<T, N3>,
                 false,
                 T extends S<S<S<infer P>>>
                    ? IsMultipleOfThree<P>
                    : never>
}[Equal<T, N3> extends true ? 1 : 0]
4단계: 쉬쉬하는 소리 
이제 우리는 마침내 우리의fizzbuzz 프로그램을 작성할 수 있게 되었다.가능한 출력을 정의해야 합니다.
type FIZZ = 'fizz'
type BUZZ = 'buzz'
type FIZZBUZZ = 'fizzbuzz'
이것은 우리가 이전에 정의한 Ternary 함수와 함께fizz buzz 프로그램을 매우 간결하고 표현적으로 작성할 수 있도록 합니다.
type FB<N> = Ternary<IsMultipleOfThree<N>,
    Ternary<IsMultipleOfFive<N>, FIZZBUZZ, FIZZ>,
    Ternary<IsMultipleOfFive<N>, BUZZ, N>>
위에서 설명한 대로 테스트(및 사용):
type TEST = FB<N15>
 
 
5단계: 한 단계 더 나아가기 
이 간단한 프로그램을 개선하기 위해 오류 메시지와 오류 처리를 추가할 수 있습니다.예를 들어, 지금 우리가 0에서 1을 빼면, 우리는 0을 얻고, 실제로 우리는 어떤 잘못을 보아야 한다.우리는 또 이런 잘못을 어떻게 처리해야 할지 생각해야 한다.
그 밖에 많은 울부짖는 연습은 이 조작을 여러 숫자에 동시에 응용하여 특정한 목록 구조로 진행해야 한다.마찬가지로 이러한 구조는 TypeScript에는 존재하지 않지만 위와 같은 방법으로 신속하게 정의할 수 있습니다.
마지막 생각 
경험이 적은 개발자들은 쉬쉬하는 윙윙거리는 소리를 해결하기 위해 자바스크립트를 사용할 수 있다. 자바스크립트는 TypeScript를 세분화하고 문법을 삽입하는 언어이다.예:
const fb = (n: number): number | string => (n % 3 === 0)
    ? ((n % 5 === 0) ? 'fizzbuzz' : 'fizz')
    : ((n % 5 === 0) ? 'buzz' : n)
그러나 분명히 이 코드는 자바스크립트로 작성된 것일 뿐, TypeScript 내장 값을 TypeScript로 작성된 것이 아니라, TypeScript로 작성된 것이다. 모두가 알다시피 TypeScript는 동적 형식과 해석의 프로그래밍 언어이다.
이 글은 켈 킹스베리(Kyle Kingsbury)this post의 계발을 받아 나에게 빛을 보여 주었다.
편집: 변경 실현, 왜냐하면 나는 할 수 있기 때문에...
VSCode는 표현식을 정확하게 계산하기 때문에 지금까지 사용할 수 있는 가장 좋은 TypeScript 해석기입니다.반대로 IntelliJ는 약간의 귀속이나 끼워 넣은 표현식을 계산할 수 없을 정도로 결함이 있다.이 해석기들의 인체공학은 모두 매우 기이하다. 만약 누군가가 편집기가 끼워져 있지 않은 간단한 타자 해석기를 작성할 수 있다면 좋겠다.  ↩ 
TypeScript 구문의 일부 특성은 반복적으로 작성하기 위해 약간의 간접성을 도입해야 한다는 것을 의미한다.이것은 다시 한 번 유감스럽다.  ↩ 
마찬가지로, TypeScript의 특성은 정의된 기호가 블록 밖의 동일한 표현식에서 직접 참조될 때 화가 나기 때문에 문법을 완전히 취소할 수 없다는 것을 의미하지만, 이것은 여전히 개선된 것이다.  ↩ 
                
                    
        
    
    
    
    
    
                
                
                
                
                    
                        
                            
                            
                            Reference
                            
                            이 문제에 관하여(TypeScript에서 윙윙거리는 소리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
                                
                                https://dev.to/gypsydave5/fizz-buzz-in-typescript-7ip
                            
                            
                            
                                텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                            
                            
                                
                                
                                 우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                            
                            
                        
                    
                
                
                
            
type FIZZ = 'fizz'
type BUZZ = 'buzz'
type FIZZBUZZ = 'fizzbuzz'
type FB<N> = Ternary<IsMultipleOfThree<N>,
    Ternary<IsMultipleOfFive<N>, FIZZBUZZ, FIZZ>,
    Ternary<IsMultipleOfFive<N>, BUZZ, N>>
type TEST = FB<N15>
이 간단한 프로그램을 개선하기 위해 오류 메시지와 오류 처리를 추가할 수 있습니다.예를 들어, 지금 우리가 0에서 1을 빼면, 우리는 0을 얻고, 실제로 우리는 어떤 잘못을 보아야 한다.우리는 또 이런 잘못을 어떻게 처리해야 할지 생각해야 한다.
그 밖에 많은 울부짖는 연습은 이 조작을 여러 숫자에 동시에 응용하여 특정한 목록 구조로 진행해야 한다.마찬가지로 이러한 구조는 TypeScript에는 존재하지 않지만 위와 같은 방법으로 신속하게 정의할 수 있습니다.
마지막 생각 
경험이 적은 개발자들은 쉬쉬하는 윙윙거리는 소리를 해결하기 위해 자바스크립트를 사용할 수 있다. 자바스크립트는 TypeScript를 세분화하고 문법을 삽입하는 언어이다.예:
const fb = (n: number): number | string => (n % 3 === 0)
    ? ((n % 5 === 0) ? 'fizzbuzz' : 'fizz')
    : ((n % 5 === 0) ? 'buzz' : n)
그러나 분명히 이 코드는 자바스크립트로 작성된 것일 뿐, TypeScript 내장 값을 TypeScript로 작성된 것이 아니라, TypeScript로 작성된 것이다. 모두가 알다시피 TypeScript는 동적 형식과 해석의 프로그래밍 언어이다.
이 글은 켈 킹스베리(Kyle Kingsbury)this post의 계발을 받아 나에게 빛을 보여 주었다.
편집: 변경 실현, 왜냐하면 나는 할 수 있기 때문에...
VSCode는 표현식을 정확하게 계산하기 때문에 지금까지 사용할 수 있는 가장 좋은 TypeScript 해석기입니다.반대로 IntelliJ는 약간의 귀속이나 끼워 넣은 표현식을 계산할 수 없을 정도로 결함이 있다.이 해석기들의 인체공학은 모두 매우 기이하다. 만약 누군가가 편집기가 끼워져 있지 않은 간단한 타자 해석기를 작성할 수 있다면 좋겠다.  ↩ 
TypeScript 구문의 일부 특성은 반복적으로 작성하기 위해 약간의 간접성을 도입해야 한다는 것을 의미한다.이것은 다시 한 번 유감스럽다.  ↩ 
마찬가지로, TypeScript의 특성은 정의된 기호가 블록 밖의 동일한 표현식에서 직접 참조될 때 화가 나기 때문에 문법을 완전히 취소할 수 없다는 것을 의미하지만, 이것은 여전히 개선된 것이다.  ↩ 
                
                    
        
    
    
    
    
    
                
                
                
                
                    
                        
                            
                            
                            Reference
                            
                            이 문제에 관하여(TypeScript에서 윙윙거리는 소리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
                                
                                https://dev.to/gypsydave5/fizz-buzz-in-typescript-7ip
                            
                            
                            
                                텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                            
                            
                                
                                
                                 우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                            
                            
                        
                    
                
                
                
            
const fb = (n: number): number | string => (n % 3 === 0)
    ? ((n % 5 === 0) ? 'fizzbuzz' : 'fizz')
    : ((n % 5 === 0) ? 'buzz' : n)
Reference
이 문제에 관하여(TypeScript에서 윙윙거리는 소리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/gypsydave5/fizz-buzz-in-typescript-7ip텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)