Sự khác biệt giữa các loại Liên minh và các loại giao lộ là gì?

Về mặt khái niệm, các loại liên kết và giao nhau có thể được coi là các toán tử logic logic [

ts

function flipCoin[]: "heads" | "tails" {

if [Math.random[] > 0.5] return "heads"

return "tails"

}

 

const outcome = flipCoin[]

const outcome: "heads" | "tails"

Try

5,

ts

function flipCoin[]: "heads" | "tails" {

if [Math.random[] > 0.5] return "heads"

return "tails"

}

 

const outcome = flipCoin[]

const outcome: "heads" | "tails"

Try

6] khi chúng liên quan đến các loại. Hãy xem nhóm gồm hai bộ mục chồng chéo này làm ví dụ

Try

0 thì nó sẽ bao gồm mọi mục trên toàn bộ biểu đồ

Các loại giao lộ cũng có tên và định nghĩa xuất phát từ lý thuyết tập hợp, nhưng chúng có thể được coi là AND, đối với các loại

Trong sơ đồ tương tự ở trên, nếu chúng ta muốn trái cây cũng chua [

ts

function flipCoin[]: "heads" | "tails" {

if [Math.random[] > 0.5] return "heads"

return "tails"

}

 

const outcome = flipCoin[]

const outcome: "heads" | "tails"

Try

1] thì cuối cùng chúng ta chỉ nhận được

ts

function flipCoin[]: "heads" | "tails" {

if [Math.random[] > 0.5] return "heads"

return "tails"

}

 

const outcome = flipCoin[]

const outcome: "heads" | "tails"

Try

2

Các kiểu liên kết trong TypeScript

Các loại liên kết trong TypeScript có thể được mô tả bằng toán tử

ts

function flipCoin[]: "heads" | "tails" {

if [Math.random[] > 0.5] return "heads"

return "tails"

}

 

const outcome = flipCoin[]

const outcome: "heads" | "tails"

Try

3 [ống]

Ví dụ: nếu chúng tôi có một loại có thể là một trong hai chuỗi,

ts

function flipCoin[]: "heads" | "tails" {

if [Math.random[] > 0.5] return "heads"

return "tails"

}

 

const outcome = flipCoin[]

const outcome: "heads" | "tails"

Try

4 hoặc

ts

function flipCoin[]: "heads" | "tails" {

if [Math.random[] > 0.5] return "heads"

return "tails"

}

 

const outcome = flipCoin[]

const outcome: "heads" | "tails"

Try

5, chúng tôi có thể định nghĩa nó là

ts

"success" | "error"

Ví dụ, hàm

ts

function flipCoin[]: "heads" | "tails" {

if [Math.random[] > 0.5] return "heads"

return "tails"

}

 

const outcome = flipCoin[]

const outcome: "heads" | "tails"

Try

6 sẽ trả về

ts

function flipCoin[]: "heads" | "tails" {

if [Math.random[] > 0.5] return "heads"

return "tails"

}

 

const outcome = flipCoin[]

const outcome: "heads" | "tails"

Try

7 nếu một số được chọn từ

ts

function flipCoin[]: "heads" | "tails" {

if [Math.random[] > 0.5] return "heads"

return "tails"

}

 

const outcome = flipCoin[]

const outcome: "heads" | "tails"

Try

8 là >= 0. 5, hoặc

ts

function flipCoin[]: "heads" | "tails" {

if [Math.random[] > 0.5] return "heads"

return "tails"

}

 

const outcome = flipCoin[]

const outcome: "heads" | "tails"

Try

9 nếu 0.5] return "heads"

return "tails"

}

 

const outcome = flipCoin[]

const outcome: "heads" | "tails"

Try

Hãy làm cho điều này thú vị hơn một chút bằng cách sử dụng các bộ dữ liệu, được cấu trúc như sau

  • ts

    function flipCoin[]: "heads" | "tails" {

    if [Math.random[] > 0.5] return "heads"

    return "tails"

    }

     

    const outcome = flipCoin[]

    const outcome: "heads" | "tails"

    Try

    20 hoặc là

    ts

    function flipCoin[]: "heads" | "tails" {

    if [Math.random[] > 0.5] return "heads"

    return "tails"

    }

     

    const outcome = flipCoin[]

    const outcome: "heads" | "tails"

    Try

    4 hoặc là

    ts

    function flipCoin[]: "heads" | "tails" {

    if [Math.random[] > 0.5] return "heads"

    return "tails"

    }

     

    const outcome = flipCoin[]

    const outcome: "heads" | "tails"

    Try

    22
  • ts

    function flipCoin[]: "heads" | "tails" {

    if [Math.random[] > 0.5] return "heads"

    return "tails"

    }

     

    const outcome = flipCoin[]

    const outcome: "heads" | "tails"

    Try

    23 một cái gì đó khác, tùy thuộc vào giá trị được tìm thấy trong

    ts

    function flipCoin[]: "heads" | "tails" {

    if [Math.random[] > 0.5] return "heads"

    return "tails"

    }

     

    const outcome = flipCoin[]

    const outcome: "heads" | "tails"

    Try

    20

    • Trường hợp

      ts

      function flipCoin[]: "heads" | "tails" {

      if [Math.random[] > 0.5] return "heads"

      return "tails"

      }

       

      const outcome = flipCoin[]

      const outcome: "heads" | "tails"

      Try

      4. một mẩu thông tin liên lạc.

      ts

      function flipCoin[]: "heads" | "tails" {

      if [Math.random[] > 0.5] return "heads"

      return "tails"

      }

       

      const outcome = flipCoin[]

      const outcome: "heads" | "tails"

      Try

      26
    • Trường hợp

      ts

      function flipCoin[]: "heads" | "tails" {

      if [Math.random[] > 0.5] return "heads"

      return "tails"

      }

       

      const outcome = flipCoin[]

      const outcome: "heads" | "tails"

      Try

      5. một trường hợp

      ts

      function flipCoin[]: "heads" | "tails" {

      if [Math.random[] > 0.5] return "heads"

      return "tails"

      }

       

      const outcome = flipCoin[]

      const outcome: "heads" | "tails"

      Try

      28

Chúng tôi vẫn sẽ quyết định điều nào trong số những điều này thực sự xảy ra dựa trên việc tung đồng xu 50/50 của chúng tôi từ phía trên

ts

function flipCoin[]: "heads" | "tails" {

if [Math.random[] > 0.5] return "heads"

return "tails"

}

 

const outcome = flipCoin[]

const outcome: "heads" | "tails"

Try

2

loại này thú vị hơn nhiều

Làm việc với các loại công đoàn

Hãy tiếp tục với ví dụ của chúng tôi ở trên và cố gắng làm điều gì đó với giá trị "kết quả"

Trước tiên, hãy hủy cấu trúc bộ dữ liệu và xem TypeScript nói gì về các thành viên của nó

ts

function flipCoin[]: "heads" | "tails" {

if [Math.random[] > 0.5] return "heads"

return "tails"

}

 

const outcome = flipCoin[]

const outcome: "heads" | "tails"

Try

2

Một thời gian tốt để chọc xung quanh

Nhấp vào nút

ts

function flipCoin[]: "heads" | "tails" {

if [Math.random[] > 0.5] return "heads"

return "tails"

}

 

const outcome = flipCoin[]

const outcome: "heads" | "tails"

Try

29 và khám phá

ts

function flipCoin[]: "heads" | "tails" {

if [Math.random[] > 0.5] return "heads"

return "tails"

}

 

const outcome = flipCoin[]

const outcome: "heads" | "tails"

Try

20 và

ts

function flipCoin[]: "heads" | "tails" {

if [Math.random[] > 0.5] return "heads"

return "tails"

}

 

const outcome = flipCoin[]

const outcome: "heads" | "tails"

Try

21 trong sân chơi TS. Khám phá những gì có sẵn trong tự động hoàn thành cho mỗi

ts

function flipCoin[]: "heads" | "tails" {

if [Math.random[] > 0.5] return "heads"

return "tails"

}

 

const outcome = flipCoin[]

const outcome: "heads" | "tails"

Try

6

Chúng ta có thể thấy rằng thông tin tự động điền cho giá trị đầu tiên gợi ý rằng đó là một chuỗi. Điều này là do, bất kể đây là chuỗi cụ thể

ts

function flipCoin[]: "heads" | "tails" {

if [Math.random[] > 0.5] return "heads"

return "tails"

}

 

const outcome = flipCoin[]

const outcome: "heads" | "tails"

Try

4 hay

ts

function flipCoin[]: "heads" | "tails" {

if [Math.random[] > 0.5] return "heads"

return "tails"

}

 

const outcome = flipCoin[]

const outcome: "heads" | "tails"

Try

5, nó chắc chắn sẽ là một chuỗi

Giá trị thứ hai phức tạp hơn một chút — chỉ có thuộc tính

ts

function flipCoin[]: "heads" | "tails" {

if [Math.random[] > 0.5] return "heads"

return "tails"

}

 

const outcome = flipCoin[]

const outcome: "heads" | "tails"

Try

24 là có sẵn cho chúng tôi. Điều này là do, cả “đối tượng thông tin người dùng của chúng tôi và các phiên bản của lớp

ts

function flipCoin[]: "heads" | "tails" {

if [Math.random[] > 0.5] return "heads"

return "tails"

}

 

const outcome = flipCoin[]

const outcome: "heads" | "tails"

Try

28 đều có thuộc tính

ts

function flipCoin[]: "heads" | "tails" {

if [Math.random[] > 0.5] return "heads"

return "tails"

}

 

const outcome = flipCoin[]

const outcome: "heads" | "tails"

Try

24 có giá trị là một chuỗi

Những gì chúng ta đang thấy ở đây là, khi một giá trị có loại bao gồm liên kết, chúng ta chỉ có thể sử dụng "hành vi chung" được đảm bảo ở đó

Thu hẹp với loại bảo vệ

Cuối cùng, chúng ta cần phải “tách biệt” hai khả năng tiềm ẩn cho giá trị của mình, nếu không chúng ta sẽ không thể tiến xa được. Chúng ta có thể làm điều này với các loại bảo vệ

Bộ bảo vệ loại là các biểu thức, khi được sử dụng với câu lệnh luồng điều khiển, cho phép chúng ta có một loại cụ thể hơn cho một giá trị cụ thể

Tôi thích coi đây là “chất keo” giữa kiểm tra kiểu thời gian biên dịch và thực thi thời gian chạy mã của bạn. Chúng tôi sẽ làm việc với một cái mà bạn đã quen thuộc để bắt đầu.

ts

function flipCoin[]: "heads" | "tails" {

if [Math.random[] > 0.5] return "heads"

return "tails"

}

 

const outcome = flipCoin[]

const outcome: "heads" | "tails"

Try

27

ts

function flipCoin[]: "heads" | "tails" {

if [Math.random[] > 0.5] return "heads"

return "tails"

}

 

const outcome = flipCoin[]

const outcome: "heads" | "tails"

Try

3

TypeScript có một sự hiểu biết đặc biệt về ý nghĩa của nó khi séc ________ 227 của bạn trả về ________ 229 hoặc ________ 260 và tạo ra một nhánh mã xử lý từng khả năng

Nó thậm chí còn tốt hơn…

Công đoàn bị phân biệt đối xử

ts

function flipCoin[]: "heads" | "tails" {

if [Math.random[] > 0.5] return "heads"

return "tails"

}

 

const outcome = flipCoin[]

const outcome: "heads" | "tails"

Try

7

TypeScript hiểu rằng vị trí thứ nhất và thứ hai của bộ dữ liệu của chúng tôi được liên kết. Những gì chúng ta đang thấy ở đây đôi khi được gọi là loại công đoàn bị phân biệt đối xử hoặc “được gắn thẻ”

Các loại giao lộ trong TypeScript

Các loại giao lộ trong TypeScript có thể được mô tả bằng toán tử

ts

function flipCoin[]: "heads" | "tails" {

if [Math.random[] > 0.5] return "heads"

return "tails"

}

 

const outcome = flipCoin[]

const outcome: "heads" | "tails"

Try

61 [dấu và]

Ví dụ: nếu chúng ta có một

ts

function flipCoin[]: "heads" | "tails" {

if [Math.random[] > 0.5] return "heads"

return "tails"

}

 

const outcome = flipCoin[]

const outcome: "heads" | "tails"

Try

62, có thêm các thuộc tính

ts

function flipCoin[]: "heads" | "tails" {

if [Math.random[] > 0.5] return "heads"

return "tails"

}

 

const outcome = flipCoin[]

const outcome: "heads" | "tails"

Try

63 và

ts

function flipCoin[]: "heads" | "tails" {

if [Math.random[] > 0.5] return "heads"

return "tails"

}

 

const outcome = flipCoin[]

const outcome: "heads" | "tails"

Try

64 thì sao?

ts

function flipCoin[]: "heads" | "tails" {

if [Math.random[] > 0.5] return "heads"

return "tails"

}

 

const outcome = flipCoin[]

const outcome: "heads" | "tails"

Try

2

Điều này hoàn toàn khác so với những gì chúng tôi đã thấy với các loại liên kết - đây thực sự là một

ts

function flipCoin[]: "heads" | "tails" {

if [Math.random[] > 0.5] return "heads"

return "tails"

}

 

const outcome = flipCoin[]

const outcome: "heads" | "tails"

Try

65 và

ts

function flipCoin[]: "heads" | "tails" {

if [Math.random[] > 0.5] return "heads"

return "tails"

}

 

const outcome = flipCoin[]

const outcome: "heads" | "tails"

Try

66 được kết hợp với nhau và chúng tôi có quyền truy cập vào mọi thứ ngay lập tức

Việc sử dụng các loại giao lộ ít phổ biến hơn nhiều so với các loại liên kết. Tôi hy vọng nó sẽ có tỷ lệ ít nhất là 50 trên 1 đối với bạn trong thực tế

Sự khác biệt giữa liên minh và giao lộ là gì?

Hợp và giao của các tập hợp là gì? . e. A ∪ B, còn giao của hai tập hợp A và B là tập hợp gồm các phần tử chung The union of two sets A and B is the set of all those elements which are either in A or in B, i.e. A ∪ B, whereas the intersection of two sets A and B is the set of all elements which are common . Giao của hai tập hợp này được ký hiệu là A ∩ B.

Hai loại giao nhau là gì?

Các giao lộ thường được mô tả là được kiểm soát hoặc không được kiểm soát . Giao lộ có kiểm soát là phổ biến nhất và đề cập đến những giao lộ sử dụng biển báo dừng hoặc tín hiệu giao thông. Các giao lộ không được kiểm soát được tìm thấy chủ yếu ở các vùng nông thôn có ít phương tiện giao thông.

Ba loại giao lộ là gì?

Ba loại giao lộ cơ bản là giao lộ ba nhánh hoặc giao lộ chữ T [với các thay đổi về góc tiếp cận], giao lộ bốn nhánh và giao lộ nhiều nhánh. . Mỗi giao lộ có thể khác nhau rất nhiều về phạm vi, hình dạng, cách sử dụng phân luồng và các loại thiết bị điều khiển giao thông khác. . Each intersection can vary greatly in scope, shape, use of channelization and other types of traffic control devices.

Các loại giao lộ trong TypeScript là gì?

Trong Typescript, mặc dù các kiểu giao và hợp tương tự nhau nhưng chúng được sử dụng theo những cách hoàn toàn khác nhau. Loại giao lộ là loại hợp nhất nhiều loại thành một . Điều này cho phép bạn kết hợp nhiều loại để tạo một loại duy nhất với tất cả các thuộc tính mà bạn yêu cầu.

Chủ Đề