XML 136 R104.htm IDEA: XBRL DOCUMENT
v3.20.1

Property, Plant and Equipment - Summary of maturity analysis of operating lease payments receivable (Detail) - Operating Lease Agreement [Member] $ in Millions | Dec. 31, 2019 TWD ($)
--- | ---
Disclosure Of Maturity Analysis Of Operating Lease Receivables [Line Items] |
Operating Lease Payment Receivables | $ 52.4
Year 1 [member] |
Disclosure Of Maturity Analysis Of Operating Lease Receivables [Line Items] |
Operating Lease Payment Receivables | 18.4
Year 2 [Member] |
Disclosure Of Maturity Analysis Of Operating Lease Receivables [Line Items] |
Operating Lease Payment Receivables | 17.0
Year 3 [member] |
Disclosure Of Maturity Analysis Of Operating Lease Receivables [Line Items] |
Operating Lease Payment Receivables | $ 17.0

X
- Definition The amount of undiscounted operating lease payments to be received. Operating lease is a lease that does not transfer substantially all the risks and rewards incidental to ownership of an underlying asset. + References Reference 1: http://www.xbrl.org/2003/role/disclosureRef -Name IFRS -Number 16 -IssueDate 2019-01-01 -Paragraph 97 -URI http://eifrs.ifrs.org/eifrs/xifrs-link?type=IFRS&num=16&code=ifrs-tx-2019-en-r&anchor=para_97&doctype=Standard -URIDate 2019-03-27 + Details
Name: | ifrs-full_UndiscountedOperatingLeasePaymentsToBeReceived
Namespace Prefix: | ifrs-full_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | instant

X
- Definition Disclosure of maturity analysis of operating lease receivables + References No definition available. + Details
Name: | tsm_DisclosureOfMaturityAnalysisOfOperatingLeaseReceivablesLineItems
Namespace Prefix: | tsm_
Data Type: | xbrli:stringItemType
Balance Type: | na
Period Type: | duration

X
- Details
Name: | tsm_CategoryofLeaseAgreementsAxis=tsm_OperatingLeaseAgreementMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | ifrs-full_MaturityAxis=ifrs-full_NotLaterThanOneYearMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | ifrs-full_MaturityAxis=ifrs-full_LaterThanOneYearAndNotLaterThanTwoYearsMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | ifrs-full_MaturityAxis=ifrs-full_LaterThanTwoYearsAndNotLaterThanThreeYearsMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |