tmui-cli 2.0.3 → 2.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1168) hide show
  1. package/README.md +22 -14
  2. package/data/components.json +1 -1
  3. package/data/config.json +1 -1
  4. package/data/doc-index.json +1 -1
  5. package/data/examples/radio.vue +4 -0
  6. package/data/guides//346/233/264/346/226/260/346/227/245/345/277/227.md +2 -0
  7. package/data/tmui4x/60.AI/350/207/252/345/212/250/345/214/226/01.Agent.md +42 -16
  8. package/data/tmui4x/60.AI/350/207/252/345/212/250/345/214/226/04.SKILL.md +9 -8
  9. package/data/tmui4x-doc-index.json +1 -1
  10. package/data/uni-app-x-docs/.vuepress/components/md/banner.vue +241 -0
  11. package/data/uni-app-x-docs/.vuepress/components/md/hperm.vue +59 -0
  12. package/data/uni-app-x-docs/.vuepress/components/md/virtual.vue +49 -0
  13. package/data/uni-app-x-docs/.vuepress/config/copy.js +7 -0
  14. package/data/uni-app-x-docs/.vuepress/config/footer.js +220 -0
  15. package/data/uni-app-x-docs/.vuepress/config/help.js +4 -0
  16. package/data/uni-app-x-docs/.vuepress/config/i18n/index.js +2 -0
  17. package/data/uni-app-x-docs/.vuepress/config/navbar.js +144 -0
  18. package/data/uni-app-x-docs/.vuepress/config/redirectRouter.js +35 -0
  19. package/data/uni-app-x-docs/.vuepress/config/routerMap.js +30 -0
  20. package/data/uni-app-x-docs/.vuepress/config/searchPage.js +53 -0
  21. package/data/uni-app-x-docs/.vuepress/config/siderbar/index.js +6 -0
  22. package/data/uni-app-x-docs/.vuepress/config/siderbar/uni-app-x.js +69 -0
  23. package/data/uni-app-x-docs/.vuepress/config/toc.js +13 -0
  24. package/data/uni-app-x-docs/.vuepress/config.js +130 -0
  25. package/data/uni-app-x-docs/.vuepress/markdown/inject-json-to-md.js +248 -0
  26. package/data/uni-app-x-docs/.vuepress/public/baidu.js +7 -0
  27. package/data/uni-app-x-docs/.vuepress/public/h5/hybrid/html/local.html +88 -0
  28. package/data/uni-app-x-docs/.vuepress/public/h5/index.html +14 -0
  29. package/data/uni-app-x-docs/.vuepress/public/h5/pcguide.html +241 -0
  30. package/data/uni-app-x-docs/.vuepress/public/h5/touch-emulator.js +363 -0
  31. package/data/uni-app-x-docs/.vuepress/public/js/miku.js +10 -0
  32. package/data/uni-app-x-docs/.vuepress/public/miku-delivery-1.2.1.js +7 -0
  33. package/data/uni-app-x-docs/.vuepress/public/miku-delivery-sw-1.2.1.js +7 -0
  34. package/data/uni-app-x-docs/.vuepress/public/pc.html +157 -0
  35. package/data/uni-app-x-docs/.vuepress/public/static/web-view-forum.html +119 -0
  36. package/data/uni-app-x-docs/.vuepress/public/static/web-view.html +119 -0
  37. package/data/uni-app-x-docs/.vuepress/public/svg/uni-open-bridge.svg +1 -0
  38. package/data/uni-app-x-docs/.vuepress/utils/code.js +61 -0
  39. package/data/uni-app-x-docs/.vuepress/utils/cssJson.json +1 -0
  40. package/data/uni-app-x-docs/.vuepress/utils/customTypeJson.json +1 -0
  41. package/data/uni-app-x-docs/.vuepress/utils/example-mapping.json +46 -0
  42. package/data/uni-app-x-docs/.vuepress/utils/example.js +107 -0
  43. package/data/uni-app-x-docs/.vuepress/utils/index.js +20 -0
  44. package/data/uni-app-x-docs/.vuepress/utils/maniFestJson.json +1 -0
  45. package/data/uni-app-x-docs/.vuepress/utils/pageInstanceJson.json +1 -0
  46. package/data/uni-app-x-docs/.vuepress/utils/pagesJson.json +1 -0
  47. package/data/uni-app-x-docs/.vuepress/utils/specialStringJson.json +1 -0
  48. package/data/uni-app-x-docs/.vuepress/utils/utsApiJson.json +1 -0
  49. package/data/uni-app-x-docs/.vuepress/utils/utsComJson.json +1 -0
  50. package/data/uni-app-x-docs/.vuepress/utils/utsDiffTSJson.json +1 -0
  51. package/data/uni-app-x-docs/.vuepress/utils/utsJson.json +1 -0
  52. package/data/uni-app-x-docs/.vuepress/utils/utsUnicloudApiJson.json +1 -0
  53. package/data/uni-app-x-docs/.vuepress/utils/vueJson.json +1 -0
  54. package/data/uni-app-x-docs/404.md +2 -0
  55. package/data/uni-app-x-docs/_sidebar.md +140 -0
  56. package/data/uni-app-x-docs/adapt.md +169 -0
  57. package/data/uni-app-x-docs/ai/NOTE.md +7 -0
  58. package/data/uni-app-x-docs/api/README.md +105 -0
  59. package/data/uni-app-x-docs/api/_sidebar.md +165 -0
  60. package/data/uni-app-x-docs/api/accelerometer.md +72 -0
  61. package/data/uni-app-x-docs/api/action-sheet.md +40 -0
  62. package/data/uni-app-x-docs/api/animation-frame.md +57 -0
  63. package/data/uni-app-x-docs/api/app-route.md +323 -0
  64. package/data/uni-app-x-docs/api/authentication.md +62 -0
  65. package/data/uni-app-x-docs/api/base64.md +33 -0
  66. package/data/uni-app-x-docs/api/bio-auth.md +5 -0
  67. package/data/uni-app-x-docs/api/calendar.md +40 -0
  68. package/data/uni-app-x-docs/api/canvas-get-image-data.md +5 -0
  69. package/data/uni-app-x-docs/api/canvas-put-image-data.md +5 -0
  70. package/data/uni-app-x-docs/api/canvas-to-temp-file-path.md +17 -0
  71. package/data/uni-app-x-docs/api/canvasrenderingcontext2d.md +673 -0
  72. package/data/uni-app-x-docs/api/capture-screen.md +55 -0
  73. package/data/uni-app-x-docs/api/capturescreen.md +5 -0
  74. package/data/uni-app-x-docs/api/choose-file.md +27 -0
  75. package/data/uni-app-x-docs/api/choose-image.md +40 -0
  76. package/data/uni-app-x-docs/api/choose-location.md +304 -0
  77. package/data/uni-app-x-docs/api/choose-media.md +29 -0
  78. package/data/uni-app-x-docs/api/choose-video.md +31 -0
  79. package/data/uni-app-x-docs/api/clipboard.md +44 -0
  80. package/data/uni-app-x-docs/api/compass.md +53 -0
  81. package/data/uni-app-x-docs/api/compress-image.md +25 -0
  82. package/data/uni-app-x-docs/api/compress-video.md +21 -0
  83. package/data/uni-app-x-docs/api/connect-event-source.md +34 -0
  84. package/data/uni-app-x-docs/api/contact.md +37 -0
  85. package/data/uni-app-x-docs/api/create-camera-context.md +27 -0
  86. package/data/uni-app-x-docs/api/create-canvas-context-async.md +36 -0
  87. package/data/uni-app-x-docs/api/create-editor-context-async.md +23 -0
  88. package/data/uni-app-x-docs/api/create-inner-audio-context.md +67 -0
  89. package/data/uni-app-x-docs/api/create-intersection-observer.md +17 -0
  90. package/data/uni-app-x-docs/api/create-interstitial-ad.md +43 -0
  91. package/data/uni-app-x-docs/api/create-live-player-context.md +26 -0
  92. package/data/uni-app-x-docs/api/create-live-pusher-context.md +26 -0
  93. package/data/uni-app-x-docs/api/create-map-context.md +13 -0
  94. package/data/uni-app-x-docs/api/create-request-permission-listener.md +37 -0
  95. package/data/uni-app-x-docs/api/create-rewarded-video-ad.md +58 -0
  96. package/data/uni-app-x-docs/api/create-selector-query.md +161 -0
  97. package/data/uni-app-x-docs/api/create-video-context.md +46 -0
  98. package/data/uni-app-x-docs/api/create-webview-context.md +66 -0
  99. package/data/uni-app-x-docs/api/create-worker.md +293 -0
  100. package/data/uni-app-x-docs/api/dialog-page.md +113 -0
  101. package/data/uni-app-x-docs/api/dom/README.md +520 -0
  102. package/data/uni-app-x-docs/api/dom/cssstyledeclaration.md +515 -0
  103. package/data/uni-app-x-docs/api/dom/domrect.md +11 -0
  104. package/data/uni-app-x-docs/api/dom/drawablecontext.md +212 -0
  105. package/data/uni-app-x-docs/api/dom/element.md +5 -0
  106. package/data/uni-app-x-docs/api/dom/unicanvaselement.md +101 -0
  107. package/data/uni-app-x-docs/api/dom/unielement.md +608 -0
  108. package/data/uni-app-x-docs/api/dom/uniimageelement.md +25 -0
  109. package/data/uni-app-x-docs/api/dom/uniinputelement.md +11 -0
  110. package/data/uni-app-x-docs/api/dom/uninativeviewelement.md +98 -0
  111. package/data/uni-app-x-docs/api/dom/uniresizeobserver.md +48 -0
  112. package/data/uni-app-x-docs/api/dom/unitextareaelement.md +11 -0
  113. package/data/uni-app-x-docs/api/dom/unitextelement.md +49 -0
  114. package/data/uni-app-x-docs/api/dom/univideoelement.md +108 -0
  115. package/data/uni-app-x-docs/api/dom/uniwebviewelement.md +97 -0
  116. package/data/uni-app-x-docs/api/download-file.md +52 -0
  117. package/data/uni-app-x-docs/api/env.md +19 -0
  118. package/data/uni-app-x-docs/api/event-bus.md +81 -0
  119. package/data/uni-app-x-docs/api/exit.md +63 -0
  120. package/data/uni-app-x-docs/api/ext.md +61 -0
  121. package/data/uni-app-x-docs/api/facial-recognition-meta-info.md +47 -0
  122. package/data/uni-app-x-docs/api/facial-recognition-verify.md +5 -0
  123. package/data/uni-app-x-docs/api/file-system-spec.md +224 -0
  124. package/data/uni-app-x-docs/api/get-accessibility-info.md +23 -0
  125. package/data/uni-app-x-docs/api/get-app-authorize-setting.md +29 -0
  126. package/data/uni-app-x-docs/api/get-app-base-info.md +32 -0
  127. package/data/uni-app-x-docs/api/get-app.md +28 -0
  128. package/data/uni-app-x-docs/api/get-background-audio-manager.md +54 -0
  129. package/data/uni-app-x-docs/api/get-battery-info.md +31 -0
  130. package/data/uni-app-x-docs/api/get-current-pages.md +39 -0
  131. package/data/uni-app-x-docs/api/get-device-info.md +35 -0
  132. package/data/uni-app-x-docs/api/get-element-by-id.md +55 -0
  133. package/data/uni-app-x-docs/api/get-element.md +5 -0
  134. package/data/uni-app-x-docs/api/get-file-system-manager.md +62 -0
  135. package/data/uni-app-x-docs/api/get-image-info.md +22 -0
  136. package/data/uni-app-x-docs/api/get-launch-options-sync.md +5 -0
  137. package/data/uni-app-x-docs/api/get-location.md +210 -0
  138. package/data/uni-app-x-docs/api/get-network-type.md +23 -0
  139. package/data/uni-app-x-docs/api/get-performance.md +17 -0
  140. package/data/uni-app-x-docs/api/get-provider.md +5 -0
  141. package/data/uni-app-x-docs/api/get-recorder-manager.md +51 -0
  142. package/data/uni-app-x-docs/api/get-system-info.md +100 -0
  143. package/data/uni-app-x-docs/api/get-system-setting.md +24 -0
  144. package/data/uni-app-x-docs/api/get-univerify-manager.md +306 -0
  145. package/data/uni-app-x-docs/api/get-video-info.md +21 -0
  146. package/data/uni-app-x-docs/api/get-window-info.md +55 -0
  147. package/data/uni-app-x-docs/api/gyroscope.md +80 -0
  148. package/data/uni-app-x-docs/api/image.md +32 -0
  149. package/data/uni-app-x-docs/api/install-apk.md +26 -0
  150. package/data/uni-app-x-docs/api/interceptor.md +35 -0
  151. package/data/uni-app-x-docs/api/is-simulator.md +29 -0
  152. package/data/uni-app-x-docs/api/keyboard.md +55 -0
  153. package/data/uni-app-x-docs/api/launch.md +43 -0
  154. package/data/uni-app-x-docs/api/load-font-face.md +46 -0
  155. package/data/uni-app-x-docs/api/loading.md +61 -0
  156. package/data/uni-app-x-docs/api/locale.md +43 -0
  157. package/data/uni-app-x-docs/api/location-change.md +123 -0
  158. package/data/uni-app-x-docs/api/make-phone-call.md +25 -0
  159. package/data/uni-app-x-docs/api/memory.md +29 -0
  160. package/data/uni-app-x-docs/api/modal.md +51 -0
  161. package/data/uni-app-x-docs/api/navigator-bar-loading.md +40 -0
  162. package/data/uni-app-x-docs/api/navigator.md +89 -0
  163. package/data/uni-app-x-docs/api/network-status-change.md +41 -0
  164. package/data/uni-app-x-docs/api/network-summarize.md +40 -0
  165. package/data/uni-app-x-docs/api/nodes-info.md +5 -0
  166. package/data/uni-app-x-docs/api/on-tab-bar-mid-button-tap.md +20 -0
  167. package/data/uni-app-x-docs/api/open-app-authorize-setting.md +23 -0
  168. package/data/uni-app-x-docs/api/open-document.md +21 -0
  169. package/data/uni-app-x-docs/api/open-location.md +22 -0
  170. package/data/uni-app-x-docs/api/page-scroll-to.md +57 -0
  171. package/data/uni-app-x-docs/api/path2d.md +160 -0
  172. package/data/uni-app-x-docs/api/preview-image.md +44 -0
  173. package/data/uni-app-x-docs/api/privacy.md +84 -0
  174. package/data/uni-app-x-docs/api/provider.md +123 -0
  175. package/data/uni-app-x-docs/api/pull-down-refresh.md +46 -0
  176. package/data/uni-app-x-docs/api/push.md +1 -0
  177. package/data/uni-app-x-docs/api/report.md +44 -0
  178. package/data/uni-app-x-docs/api/request-merchant-transfer.md +31 -0
  179. package/data/uni-app-x-docs/api/request-payment.md +212 -0
  180. package/data/uni-app-x-docs/api/request-system-permission.md +21 -0
  181. package/data/uni-app-x-docs/api/request.md +73 -0
  182. package/data/uni-app-x-docs/api/rpx2px.md +19 -0
  183. package/data/uni-app-x-docs/api/save-image-to-photos-album.md +19 -0
  184. package/data/uni-app-x-docs/api/save-video-to-photos-album.md +17 -0
  185. package/data/uni-app-x-docs/api/scan-code.md +39 -0
  186. package/data/uni-app-x-docs/api/screen-brightness.md +53 -0
  187. package/data/uni-app-x-docs/api/set-navigation-bar-color.md +27 -0
  188. package/data/uni-app-x-docs/api/set-navigation-bar-title.md +22 -0
  189. package/data/uni-app-x-docs/api/set-tab-bar.md +121 -0
  190. package/data/uni-app-x-docs/api/set-tabbar.md +5 -0
  191. package/data/uni-app-x-docs/api/share-with-system.md +27 -0
  192. package/data/uni-app-x-docs/api/share.md +128 -0
  193. package/data/uni-app-x-docs/api/show-action-sheet.md +5 -0
  194. package/data/uni-app-x-docs/api/show-loading.md +5 -0
  195. package/data/uni-app-x-docs/api/show-modal.md +5 -0
  196. package/data/uni-app-x-docs/api/show-toast.md +5 -0
  197. package/data/uni-app-x-docs/api/sign-in.md +141 -0
  198. package/data/uni-app-x-docs/api/storage.md +347 -0
  199. package/data/uni-app-x-docs/api/theme-change.md +477 -0
  200. package/data/uni-app-x-docs/api/theme.md +5 -0
  201. package/data/uni-app-x-docs/api/toast.md +62 -0
  202. package/data/uni-app-x-docs/api/uni-push.md +251 -0
  203. package/data/uni-app-x-docs/api/unicloud/README.md +25 -0
  204. package/data/uni-app-x-docs/api/unicloud/database.md +27 -0
  205. package/data/uni-app-x-docs/api/unicloud/function.md +58 -0
  206. package/data/uni-app-x-docs/api/unicloud/object.md +75 -0
  207. package/data/uni-app-x-docs/api/unicloud/sse-channel.md +103 -0
  208. package/data/uni-app-x-docs/api/unicloud/storage.md +46 -0
  209. package/data/uni-app-x-docs/api/unicloud/utils.md +71 -0
  210. package/data/uni-app-x-docs/api/unipage.md +389 -0
  211. package/data/uni-app-x-docs/api/upload-file.md +40 -0
  212. package/data/uni-app-x-docs/api/vibrate.md +37 -0
  213. package/data/uni-app-x-docs/api/virtual-payment.md +228 -0
  214. package/data/uni-app-x-docs/api/websocket-global.md +5 -0
  215. package/data/uni-app-x-docs/api/websocket.md +116 -0
  216. package/data/uni-app-x-docs/api/wide-screen-adaptation.md +197 -0
  217. package/data/uni-app-x-docs/api/wifi.md +135 -0
  218. package/data/uni-app-x-docs/api/window.md +39 -0
  219. package/data/uni-app-x-docs/app-harmony/README.md +75 -0
  220. package/data/uni-app-x-docs/app-harmony/harmony-vapor.md +5 -0
  221. package/data/uni-app-x-docs/app-vapor.md +599 -0
  222. package/data/uni-app-x-docs/benchmark/vapor-benchmark-android.md +488 -0
  223. package/data/uni-app-x-docs/benchmark/vapor-benchmark-harmony.md +312 -0
  224. package/data/uni-app-x-docs/benchmark/vapor-benchmark-ios.md +375 -0
  225. package/data/uni-app-x-docs/collocation/_sidebar.md +15 -0
  226. package/data/uni-app-x-docs/collocation/app.md +268 -0
  227. package/data/uni-app-x-docs/collocation/manifest-android.md +1321 -0
  228. package/data/uni-app-x-docs/collocation/manifest-harmony.md +152 -0
  229. package/data/uni-app-x-docs/collocation/manifest-ios.md +732 -0
  230. package/data/uni-app-x-docs/collocation/manifest-modules.md +521 -0
  231. package/data/uni-app-x-docs/collocation/manifest-splashscreen.md +232 -0
  232. package/data/uni-app-x-docs/collocation/manifest.md +591 -0
  233. package/data/uni-app-x-docs/collocation/pagesjson.md +462 -0
  234. package/data/uni-app-x-docs/collocation/themejson.md +177 -0
  235. package/data/uni-app-x-docs/compiler/README.md +125 -0
  236. package/data/uni-app-x-docs/compiler/_sidebar.md +4 -0
  237. package/data/uni-app-x-docs/component/README.md +228 -0
  238. package/data/uni-app-x-docs/component/_sidebar.md +118 -0
  239. package/data/uni-app-x-docs/component/ad-custom.md +19 -0
  240. package/data/uni-app-x-docs/component/ad.md +45 -0
  241. package/data/uni-app-x-docs/component/animation-view.md +19 -0
  242. package/data/uni-app-x-docs/component/aria-component.md +19 -0
  243. package/data/uni-app-x-docs/component/audio.md +7 -0
  244. package/data/uni-app-x-docs/component/block.md +21 -0
  245. package/data/uni-app-x-docs/component/button.md +105 -0
  246. package/data/uni-app-x-docs/component/camera.md +54 -0
  247. package/data/uni-app-x-docs/component/canvas.md +163 -0
  248. package/data/uni-app-x-docs/component/channel-live.md +19 -0
  249. package/data/uni-app-x-docs/component/channel-video.md +19 -0
  250. package/data/uni-app-x-docs/component/checkbox-group.md +21 -0
  251. package/data/uni-app-x-docs/component/checkbox.md +27 -0
  252. package/data/uni-app-x-docs/component/common.md +304 -0
  253. package/data/uni-app-x-docs/component/cover-image.md +25 -0
  254. package/data/uni-app-x-docs/component/cover-view.md +25 -0
  255. package/data/uni-app-x-docs/component/custom-tab-bar.md +19 -0
  256. package/data/uni-app-x-docs/component/double-tap-gesture-handler.md +19 -0
  257. package/data/uni-app-x-docs/component/draggable-sheet.md +19 -0
  258. package/data/uni-app-x-docs/component/editor.md +33 -0
  259. package/data/uni-app-x-docs/component/flow-item.md +5 -0
  260. package/data/uni-app-x-docs/component/force-press-gesture-handler.md +19 -0
  261. package/data/uni-app-x-docs/component/form.md +108 -0
  262. package/data/uni-app-x-docs/component/functional-page-navigator.md +19 -0
  263. package/data/uni-app-x-docs/component/glass-effect-view.md +32 -0
  264. package/data/uni-app-x-docs/component/grid-builder.md +19 -0
  265. package/data/uni-app-x-docs/component/grid-view.md +19 -0
  266. package/data/uni-app-x-docs/component/horizontal-drag-gesture-handler.md +19 -0
  267. package/data/uni-app-x-docs/component/icon.md +19 -0
  268. package/data/uni-app-x-docs/component/image.md +79 -0
  269. package/data/uni-app-x-docs/component/input.md +121 -0
  270. package/data/uni-app-x-docs/component/keyboard-accessory.md +19 -0
  271. package/data/uni-app-x-docs/component/label.md +21 -0
  272. package/data/uni-app-x-docs/component/list-builder.md +19 -0
  273. package/data/uni-app-x-docs/component/list-item.md +1 -0
  274. package/data/uni-app-x-docs/component/list-view.md +191 -0
  275. package/data/uni-app-x-docs/component/live-player.md +29 -0
  276. package/data/uni-app-x-docs/component/live-pusher.md +31 -0
  277. package/data/uni-app-x-docs/component/loading.md +31 -0
  278. package/data/uni-app-x-docs/component/long-press-gesture-handler.md +19 -0
  279. package/data/uni-app-x-docs/component/map.md +116 -0
  280. package/data/uni-app-x-docs/component/match-media.md +21 -0
  281. package/data/uni-app-x-docs/component/movable-area.md +27 -0
  282. package/data/uni-app-x-docs/component/movable-view.md +27 -0
  283. package/data/uni-app-x-docs/component/native-component.md +19 -0
  284. package/data/uni-app-x-docs/component/native-view.md +210 -0
  285. package/data/uni-app-x-docs/component/navigation-bar.md +19 -0
  286. package/data/uni-app-x-docs/component/navigator.md +22 -0
  287. package/data/uni-app-x-docs/component/nested-scroll-body.md +32 -0
  288. package/data/uni-app-x-docs/component/nested-scroll-header.md +32 -0
  289. package/data/uni-app-x-docs/component/nested-scroll.md +8 -0
  290. package/data/uni-app-x-docs/component/official-account.md +19 -0
  291. package/data/uni-app-x-docs/component/open-container.md +19 -0
  292. package/data/uni-app-x-docs/component/page-container.md +37 -0
  293. package/data/uni-app-x-docs/component/page-meta.md +19 -0
  294. package/data/uni-app-x-docs/component/pan-gesture-handler.md +19 -0
  295. package/data/uni-app-x-docs/component/picker-view-column.md +5 -0
  296. package/data/uni-app-x-docs/component/picker-view.md +48 -0
  297. package/data/uni-app-x-docs/component/picker.md +29 -0
  298. package/data/uni-app-x-docs/component/progress.md +19 -0
  299. package/data/uni-app-x-docs/component/radio-group.md +21 -0
  300. package/data/uni-app-x-docs/component/radio.md +27 -0
  301. package/data/uni-app-x-docs/component/rich-text.md +108 -0
  302. package/data/uni-app-x-docs/component/root-portal.md +19 -0
  303. package/data/uni-app-x-docs/component/scale-gesture-handler.md +19 -0
  304. package/data/uni-app-x-docs/component/scroll-view.md +213 -0
  305. package/data/uni-app-x-docs/component/share-element.md +84 -0
  306. package/data/uni-app-x-docs/component/slider.md +44 -0
  307. package/data/uni-app-x-docs/component/snapshot.md +19 -0
  308. package/data/uni-app-x-docs/component/span.md +19 -0
  309. package/data/uni-app-x-docs/component/sticky-header.md +50 -0
  310. package/data/uni-app-x-docs/component/sticky-section.md +54 -0
  311. package/data/uni-app-x-docs/component/sticky.md +8 -0
  312. package/data/uni-app-x-docs/component/store-home.md +19 -0
  313. package/data/uni-app-x-docs/component/store-product.md +19 -0
  314. package/data/uni-app-x-docs/component/swiper-item.md +5 -0
  315. package/data/uni-app-x-docs/component/swiper.md +94 -0
  316. package/data/uni-app-x-docs/component/switch.md +28 -0
  317. package/data/uni-app-x-docs/component/tap-gesture-handler.md +19 -0
  318. package/data/uni-app-x-docs/component/text.md +242 -0
  319. package/data/uni-app-x-docs/component/textarea.md +90 -0
  320. package/data/uni-app-x-docs/component/uni-ui-x/README.md +1 -0
  321. package/data/uni-app-x-docs/component/uni-ui-x/uni-badge-view.md +25 -0
  322. package/data/uni-app-x-docs/component/uni-ui-x/uni-collapse-item.md +5 -0
  323. package/data/uni-app-x-docs/component/uni-ui-x/uni-collapse.md +48 -0
  324. package/data/uni-app-x-docs/component/uni-ui-x/uni-drag-cell.md +25 -0
  325. package/data/uni-app-x-docs/component/uni-ui-x/uni-fab-button.md +25 -0
  326. package/data/uni-app-x-docs/component/uni-ui-x/uni-index-bar.md +25 -0
  327. package/data/uni-app-x-docs/component/uni-ui-x/uni-link.md +25 -0
  328. package/data/uni-app-x-docs/component/uni-ui-x/uni-nav-bar.md +25 -0
  329. package/data/uni-app-x-docs/component/uni-ui-x/uni-number-box.md +25 -0
  330. package/data/uni-app-x-docs/component/uni-ui-x/uni-rate.md +25 -0
  331. package/data/uni-app-x-docs/component/uni-ui-x/uni-refresh-box.md +25 -0
  332. package/data/uni-app-x-docs/component/uni-ui-x/uni-tab-bar.md +5 -0
  333. package/data/uni-app-x-docs/component/uni-ui-x/uni-tab-content.md +5 -0
  334. package/data/uni-app-x-docs/component/uni-ui-x/uni-tab-item.md +5 -0
  335. package/data/uni-app-x-docs/component/uni-ui-x/uni-tab-midbutton.md +5 -0
  336. package/data/uni-app-x-docs/component/uni-ui-x/uni-tab.md +111 -0
  337. package/data/uni-app-x-docs/component/uni-ui-x/uni-time-format.md +25 -0
  338. package/data/uni-app-x-docs/component/unicloud-db.md +19 -0
  339. package/data/uni-app-x-docs/component/vertical-drag-gesture-handler.md +19 -0
  340. package/data/uni-app-x-docs/component/video.md +139 -0
  341. package/data/uni-app-x-docs/component/view.md +86 -0
  342. package/data/uni-app-x-docs/component/voip-room.md +19 -0
  343. package/data/uni-app-x-docs/component/waterflow.md +122 -0
  344. package/data/uni-app-x-docs/component/web-view.md +160 -0
  345. package/data/uni-app-x-docs/css/README.md +274 -0
  346. package/data/uni-app-x-docs/css/_sidebar.md +103 -0
  347. package/data/uni-app-x-docs/css/align-content.md +22 -0
  348. package/data/uni-app-x-docs/css/align-items.md +20 -0
  349. package/data/uni-app-x-docs/css/align-self.md +20 -0
  350. package/data/uni-app-x-docs/css/animation-composition.md +18 -0
  351. package/data/uni-app-x-docs/css/animation-delay.md +18 -0
  352. package/data/uni-app-x-docs/css/animation-direction.md +18 -0
  353. package/data/uni-app-x-docs/css/animation-duration.md +18 -0
  354. package/data/uni-app-x-docs/css/animation-fill-mode.md +18 -0
  355. package/data/uni-app-x-docs/css/animation-iteration-count.md +18 -0
  356. package/data/uni-app-x-docs/css/animation-name.md +18 -0
  357. package/data/uni-app-x-docs/css/animation-play-state.md +18 -0
  358. package/data/uni-app-x-docs/css/animation-range-end.md +18 -0
  359. package/data/uni-app-x-docs/css/animation-range-start.md +18 -0
  360. package/data/uni-app-x-docs/css/animation-range.md +18 -0
  361. package/data/uni-app-x-docs/css/animation-timeline.md +18 -0
  362. package/data/uni-app-x-docs/css/animation-timing-function.md +18 -0
  363. package/data/uni-app-x-docs/css/animation.md +18 -0
  364. package/data/uni-app-x-docs/css/backdrop-filter.md +21 -0
  365. package/data/uni-app-x-docs/css/background-clip.md +20 -0
  366. package/data/uni-app-x-docs/css/background-color.md +25 -0
  367. package/data/uni-app-x-docs/css/background-image.md +48 -0
  368. package/data/uni-app-x-docs/css/background.md +20 -0
  369. package/data/uni-app-x-docs/css/border-bottom-color.md +20 -0
  370. package/data/uni-app-x-docs/css/border-bottom-left-radius.md +23 -0
  371. package/data/uni-app-x-docs/css/border-bottom-right-radius.md +23 -0
  372. package/data/uni-app-x-docs/css/border-bottom-style.md +20 -0
  373. package/data/uni-app-x-docs/css/border-bottom-width.md +27 -0
  374. package/data/uni-app-x-docs/css/border-bottom.md +20 -0
  375. package/data/uni-app-x-docs/css/border-color.md +20 -0
  376. package/data/uni-app-x-docs/css/border-left-color.md +20 -0
  377. package/data/uni-app-x-docs/css/border-left-style.md +20 -0
  378. package/data/uni-app-x-docs/css/border-left-width.md +27 -0
  379. package/data/uni-app-x-docs/css/border-left.md +20 -0
  380. package/data/uni-app-x-docs/css/border-radius.md +27 -0
  381. package/data/uni-app-x-docs/css/border-right-color.md +20 -0
  382. package/data/uni-app-x-docs/css/border-right-style.md +20 -0
  383. package/data/uni-app-x-docs/css/border-right-width.md +27 -0
  384. package/data/uni-app-x-docs/css/border-right.md +20 -0
  385. package/data/uni-app-x-docs/css/border-style.md +24 -0
  386. package/data/uni-app-x-docs/css/border-top-color.md +20 -0
  387. package/data/uni-app-x-docs/css/border-top-left-radius.md +23 -0
  388. package/data/uni-app-x-docs/css/border-top-right-radius.md +23 -0
  389. package/data/uni-app-x-docs/css/border-top-style.md +20 -0
  390. package/data/uni-app-x-docs/css/border-top-width.md +27 -0
  391. package/data/uni-app-x-docs/css/border-top.md +20 -0
  392. package/data/uni-app-x-docs/css/border-width.md +24 -0
  393. package/data/uni-app-x-docs/css/border.md +23 -0
  394. package/data/uni-app-x-docs/css/bottom.md +20 -0
  395. package/data/uni-app-x-docs/css/box-shadow.md +26 -0
  396. package/data/uni-app-x-docs/css/box-sizing.md +20 -0
  397. package/data/uni-app-x-docs/css/color.md +27 -0
  398. package/data/uni-app-x-docs/css/common/at-rules.md +293 -0
  399. package/data/uni-app-x-docs/css/common/color.md +9 -0
  400. package/data/uni-app-x-docs/css/common/function.md +165 -0
  401. package/data/uni-app-x-docs/css/common/length.md +89 -0
  402. package/data/uni-app-x-docs/css/common/selector.md +50 -0
  403. package/data/uni-app-x-docs/css/common/style-isolation.md +258 -0
  404. package/data/uni-app-x-docs/css/common/variable.md +1 -0
  405. package/data/uni-app-x-docs/css/direction.md +18 -0
  406. package/data/uni-app-x-docs/css/display.md +23 -0
  407. package/data/uni-app-x-docs/css/flex-basis.md +20 -0
  408. package/data/uni-app-x-docs/css/flex-direction.md +20 -0
  409. package/data/uni-app-x-docs/css/flex-flow.md +20 -0
  410. package/data/uni-app-x-docs/css/flex-grow.md +20 -0
  411. package/data/uni-app-x-docs/css/flex-shrink.md +20 -0
  412. package/data/uni-app-x-docs/css/flex-wrap.md +20 -0
  413. package/data/uni-app-x-docs/css/flex.md +20 -0
  414. package/data/uni-app-x-docs/css/font-family.md +50 -0
  415. package/data/uni-app-x-docs/css/font-size.md +51 -0
  416. package/data/uni-app-x-docs/css/font-style.md +23 -0
  417. package/data/uni-app-x-docs/css/font-weight.md +24 -0
  418. package/data/uni-app-x-docs/css/height.md +23 -0
  419. package/data/uni-app-x-docs/css/justify-content.md +20 -0
  420. package/data/uni-app-x-docs/css/left.md +20 -0
  421. package/data/uni-app-x-docs/css/letter-spacing.md +20 -0
  422. package/data/uni-app-x-docs/css/line-height.md +37 -0
  423. package/data/uni-app-x-docs/css/lines.md +23 -0
  424. package/data/uni-app-x-docs/css/margin-bottom.md +25 -0
  425. package/data/uni-app-x-docs/css/margin-left.md +25 -0
  426. package/data/uni-app-x-docs/css/margin-right.md +25 -0
  427. package/data/uni-app-x-docs/css/margin-top.md +25 -0
  428. package/data/uni-app-x-docs/css/margin.md +33 -0
  429. package/data/uni-app-x-docs/css/max-height.md +20 -0
  430. package/data/uni-app-x-docs/css/max-width.md +20 -0
  431. package/data/uni-app-x-docs/css/min-height.md +27 -0
  432. package/data/uni-app-x-docs/css/min-width.md +20 -0
  433. package/data/uni-app-x-docs/css/opacity.md +20 -0
  434. package/data/uni-app-x-docs/css/overflow.md +28 -0
  435. package/data/uni-app-x-docs/css/padding-bottom.md +23 -0
  436. package/data/uni-app-x-docs/css/padding-left.md +23 -0
  437. package/data/uni-app-x-docs/css/padding-right.md +23 -0
  438. package/data/uni-app-x-docs/css/padding-top.md +23 -0
  439. package/data/uni-app-x-docs/css/padding.md +23 -0
  440. package/data/uni-app-x-docs/css/pointer-events.md +26 -0
  441. package/data/uni-app-x-docs/css/position.md +50 -0
  442. package/data/uni-app-x-docs/css/right.md +20 -0
  443. package/data/uni-app-x-docs/css/text-align.md +23 -0
  444. package/data/uni-app-x-docs/css/text-decoration-color.md +25 -0
  445. package/data/uni-app-x-docs/css/text-decoration-line.md +24 -0
  446. package/data/uni-app-x-docs/css/text-decoration-style.md +23 -0
  447. package/data/uni-app-x-docs/css/text-decoration-thickness.md +23 -0
  448. package/data/uni-app-x-docs/css/text-decoration.md +24 -0
  449. package/data/uni-app-x-docs/css/text-overflow.md +24 -0
  450. package/data/uni-app-x-docs/css/text-shadow.md +22 -0
  451. package/data/uni-app-x-docs/css/top.md +20 -0
  452. package/data/uni-app-x-docs/css/transform-origin.md +20 -0
  453. package/data/uni-app-x-docs/css/transform.md +32 -0
  454. package/data/uni-app-x-docs/css/transition-delay.md +27 -0
  455. package/data/uni-app-x-docs/css/transition-duration.md +27 -0
  456. package/data/uni-app-x-docs/css/transition-property.md +23 -0
  457. package/data/uni-app-x-docs/css/transition-timing-function.md +23 -0
  458. package/data/uni-app-x-docs/css/transition.md +43 -0
  459. package/data/uni-app-x-docs/css/visibility.md +26 -0
  460. package/data/uni-app-x-docs/css/white-space.md +49 -0
  461. package/data/uni-app-x-docs/css/width.md +23 -0
  462. package/data/uni-app-x-docs/css/z-index.md +127 -0
  463. package/data/uni-app-x-docs/debug/android-inspector.md +55 -0
  464. package/data/uni-app-x-docs/i18n.md +379 -0
  465. package/data/uni-app-x-docs/mp/README.md +155 -0
  466. package/data/uni-app-x-docs/mp/native-component-and-wxs.md +166 -0
  467. package/data/uni-app-x-docs/native/README.md +67 -0
  468. package/data/uni-app-x-docs/native/debug/android.md +126 -0
  469. package/data/uni-app-x-docs/native/debug/harmony.md +119 -0
  470. package/data/uni-app-x-docs/native/debug/ios.md +92 -0
  471. package/data/uni-app-x-docs/native/download/android.md +132 -0
  472. package/data/uni-app-x-docs/native/download/ios.md +32 -0
  473. package/data/uni-app-x-docs/native/modules/android/others.md +1441 -0
  474. package/data/uni-app-x-docs/native/modules/android/uni-ad.md +104 -0
  475. package/data/uni-app-x-docs/native/modules/android/uni-facialRecognitionVerify.md +74 -0
  476. package/data/uni-app-x-docs/native/modules/android/uni-getLocation.md +131 -0
  477. package/data/uni-app-x-docs/native/modules/android/uni-map-tencent.md +101 -0
  478. package/data/uni-app-x-docs/native/modules/android/uni-oauth.md +61 -0
  479. package/data/uni-app-x-docs/native/modules/android/uni-payment.md +120 -0
  480. package/data/uni-app-x-docs/native/modules/android/uni-push.md +229 -0
  481. package/data/uni-app-x-docs/native/modules/android/uni-share.md +61 -0
  482. package/data/uni-app-x-docs/native/modules/android/uni-verify.md +105 -0
  483. package/data/uni-app-x-docs/native/modules/android/uni-video.md +135 -0
  484. package/data/uni-app-x-docs/native/modules/harmony/facialVerify.md +47 -0
  485. package/data/uni-app-x-docs/native/modules/harmony/location.md +43 -0
  486. package/data/uni-app-x-docs/native/modules/harmony/map.md +64 -0
  487. package/data/uni-app-x-docs/native/modules/harmony/modules.md +23 -0
  488. package/data/uni-app-x-docs/native/modules/harmony/oauth.md +47 -0
  489. package/data/uni-app-x-docs/native/modules/harmony/pay.md +87 -0
  490. package/data/uni-app-x-docs/native/modules/harmony/push.md +74 -0
  491. package/data/uni-app-x-docs/native/modules/harmony/verify.md +45 -0
  492. package/data/uni-app-x-docs/native/modules/ios/modules.md +962 -0
  493. package/data/uni-app-x-docs/native/permission/android_permission_adapter.md +63 -0
  494. package/data/uni-app-x-docs/native/use/android.md +541 -0
  495. package/data/uni-app-x-docs/native/use/androidcomm.md +164 -0
  496. package/data/uni-app-x-docs/native/use/androiduts.md +398 -0
  497. package/data/uni-app-x-docs/native/use/harmony.md +105 -0
  498. package/data/uni-app-x-docs/native/use/harmonyapi.md +205 -0
  499. package/data/uni-app-x-docs/native/use/harmonyuts.md +62 -0
  500. package/data/uni-app-x-docs/native/use/ios.md +96 -0
  501. package/data/uni-app-x-docs/native/use/iosapi.md +290 -0
  502. package/data/uni-app-x-docs/native/use/iosuts.md +89 -0
  503. package/data/uni-app-x-docs/page.md +503 -0
  504. package/data/uni-app-x-docs/performance.md +181 -0
  505. package/data/uni-app-x-docs/plugin/NOTE.md +7 -0
  506. package/data/uni-app-x-docs/project.md +153 -0
  507. package/data/uni-app-x-docs/readme.md +401 -0
  508. package/data/uni-app-x-docs/release-note-alpha.md +2361 -0
  509. package/data/uni-app-x-docs/release.md +2224 -0
  510. package/data/uni-app-x-docs/sample.md +157 -0
  511. package/data/uni-app-x-docs/select/native-render-and-self-render.md +386 -0
  512. package/data/uni-app-x-docs/select.md +365 -0
  513. package/data/uni-app-x-docs/static/4050-hello-flatten-optimized-device1-r1.png +0 -0
  514. package/data/uni-app-x-docs/static/calendar.jpg +0 -0
  515. package/data/uni-app-x-docs/static/go-to-definition.png +0 -0
  516. package/data/uni-app-x-docs/static/hxconsolepageperformance.png +0 -0
  517. package/data/uni-app-x-docs/static/json2type.png +0 -0
  518. package/data/uni-app-x-docs/static/newproject.png +0 -0
  519. package/data/uni-app-x-docs/static/playground.jpg +0 -0
  520. package/data/uni-app-x-docs/static/project-icon.png +0 -0
  521. package/data/uni-app-x-docs/static/uaxding.png +0 -0
  522. package/data/uni-app-x-docs/static/view-API-type-info.png +0 -0
  523. package/data/uni-app-x-docs/tutorial/android-16kb.md +100 -0
  524. package/data/uni-app-x-docs/tutorial/android-memoryleak.md +553 -0
  525. package/data/uni-app-x-docs/tutorial/app-env.md +84 -0
  526. package/data/uni-app-x-docs/tutorial/app-market.md +58 -0
  527. package/data/uni-app-x-docs/tutorial/app-package.md +196 -0
  528. package/data/uni-app-x-docs/tutorial/app-playground.md +188 -0
  529. package/data/uni-app-x-docs/tutorial/app-update-wgt.md +13 -0
  530. package/data/uni-app-x-docs/tutorial/bug_repair.md +40 -0
  531. package/data/uni-app-x-docs/tutorial/codegap.md +291 -0
  532. package/data/uni-app-x-docs/tutorial/compatibility.md +120 -0
  533. package/data/uni-app-x-docs/tutorial/compliance.md +833 -0
  534. package/data/uni-app-x-docs/tutorial/debug/devtools.md +137 -0
  535. package/data/uni-app-x-docs/tutorial/idref.md +126 -0
  536. package/data/uni-app-x-docs/tutorial/ls-plugin.md +186 -0
  537. package/data/uni-app-x-docs/tutorial/request.md +321 -0
  538. package/data/uni-app-x-docs/tutorial/rules_mcp.md +123 -0
  539. package/data/uni-app-x-docs/tutorial/stickynestlist.md +68 -0
  540. package/data/uni-app-x-docs/tutorial/store.md +161 -0
  541. package/data/uni-app-x-docs/uniapptox.md +145 -0
  542. package/data/uni-app-x-docs/uts/README.md +458 -0
  543. package/data/uni-app-x-docs/uts/_sidebar.md +57 -0
  544. package/data/uni-app-x-docs/uts/buildin-object-api/array.md +981 -0
  545. package/data/uni-app-x-docs/uts/buildin-object-api/arraybuffer.md +257 -0
  546. package/data/uni-app-x-docs/uts/buildin-object-api/console.md +208 -0
  547. package/data/uni-app-x-docs/uts/buildin-object-api/dataview.md +304 -0
  548. package/data/uni-app-x-docs/uts/buildin-object-api/date.md +707 -0
  549. package/data/uni-app-x-docs/uts/buildin-object-api/error.md +31 -0
  550. package/data/uni-app-x-docs/uts/buildin-object-api/float32array.md +485 -0
  551. package/data/uni-app-x-docs/uts/buildin-object-api/float64array.md +473 -0
  552. package/data/uni-app-x-docs/uts/buildin-object-api/global.md +222 -0
  553. package/data/uni-app-x-docs/uts/buildin-object-api/int16array.md +455 -0
  554. package/data/uni-app-x-docs/uts/buildin-object-api/int32array.md +483 -0
  555. package/data/uni-app-x-docs/uts/buildin-object-api/int8array.md +473 -0
  556. package/data/uni-app-x-docs/uts/buildin-object-api/json.md +236 -0
  557. package/data/uni-app-x-docs/uts/buildin-object-api/map.md +187 -0
  558. package/data/uni-app-x-docs/uts/buildin-object-api/math.md +502 -0
  559. package/data/uni-app-x-docs/uts/buildin-object-api/number.md +363 -0
  560. package/data/uni-app-x-docs/uts/buildin-object-api/promise.md +265 -0
  561. package/data/uni-app-x-docs/uts/buildin-object-api/regexp.md +263 -0
  562. package/data/uni-app-x-docs/uts/buildin-object-api/set.md +170 -0
  563. package/data/uni-app-x-docs/uts/buildin-object-api/string.md +723 -0
  564. package/data/uni-app-x-docs/uts/buildin-object-api/textdecoder.md +70 -0
  565. package/data/uni-app-x-docs/uts/buildin-object-api/textencoder.md +41 -0
  566. package/data/uni-app-x-docs/uts/buildin-object-api/timers.md +99 -0
  567. package/data/uni-app-x-docs/uts/buildin-object-api/uint16array.md +483 -0
  568. package/data/uni-app-x-docs/uts/buildin-object-api/uint32array.md +484 -0
  569. package/data/uni-app-x-docs/uts/buildin-object-api/uint8array.md +483 -0
  570. package/data/uni-app-x-docs/uts/buildin-object-api/uint8clampedarray.md +483 -0
  571. package/data/uni-app-x-docs/uts/buildin-object-api/utsjsonobject.md +361 -0
  572. package/data/uni-app-x-docs/uts/class.md +504 -0
  573. package/data/uni-app-x-docs/uts/compiler-known-issues.md +1242 -0
  574. package/data/uni-app-x-docs/uts/conditional.md +209 -0
  575. package/data/uni-app-x-docs/uts/data-type.md +2248 -0
  576. package/data/uni-app-x-docs/uts/enumerability.md +16 -0
  577. package/data/uni-app-x-docs/uts/enumerability_iterable.md +211 -0
  578. package/data/uni-app-x-docs/uts/exception.md +25 -0
  579. package/data/uni-app-x-docs/uts/function.md +359 -0
  580. package/data/uni-app-x-docs/uts/generics.md +251 -0
  581. package/data/uni-app-x-docs/uts/interface.md +37 -0
  582. package/data/uni-app-x-docs/uts/iterable.md +150 -0
  583. package/data/uni-app-x-docs/uts/keywords.md +436 -0
  584. package/data/uni-app-x-docs/uts/literal.md +252 -0
  585. package/data/uni-app-x-docs/uts/loops.md +240 -0
  586. package/data/uni-app-x-docs/uts/module.md +92 -0
  587. package/data/uni-app-x-docs/uts/object.md +156 -0
  588. package/data/uni-app-x-docs/uts/operator.md +304 -0
  589. package/data/uni-app-x-docs/uts/runtime-known-issues.md +99 -0
  590. package/data/uni-app-x-docs/uts/type-aliases.md +43 -0
  591. package/data/uni-app-x-docs/uts/type-compatibility.md +133 -0
  592. package/data/uni-app-x-docs/uts/uts-optimize.md +33 -0
  593. package/data/uni-app-x-docs/uts/uts_diff_ts.md +2292 -0
  594. package/data/uni-app-x-docs/uts/utsactivitycallback.md +1357 -0
  595. package/data/uni-app-x-docs/uts/utsandroid.md +850 -0
  596. package/data/uni-app-x-docs/uts/utsandroidhookproxy.md +17 -0
  597. package/data/uni-app-x-docs/uts/utsharmony.md +219 -0
  598. package/data/uni-app-x-docs/uts/utsios.md +305 -0
  599. package/data/uni-app-x-docs/uts/utsioshookproxy.md +148 -0
  600. package/data/uni-app-x-docs/vapor-benchmark.md +11 -0
  601. package/data/uni-app-x-docs/vue/README.md +588 -0
  602. package/data/uni-app-x-docs/vue/_sidebar.md +10 -0
  603. package/data/uni-app-x-docs/vue/advanced-api.md +138 -0
  604. package/data/uni-app-x-docs/vue/built-in.md +741 -0
  605. package/data/uni-app-x-docs/vue/component.md +704 -0
  606. package/data/uni-app-x-docs/vue/composition-api.md +779 -0
  607. package/data/uni-app-x-docs/vue/data-bind.md +163 -0
  608. package/data/uni-app-x-docs/vue/global-api.md +109 -0
  609. package/data/uni-app-x-docs/vue/modifier.md +202 -0
  610. package/data/uni-app-x-docs/vue/options-api.md +512 -0
  611. package/data/uni-app-x-docs/vue/others.md +20 -0
  612. package/data/uni-app-x-docs/web/README.md +279 -0
  613. package/data/uni-app-x-docs/web/ssr.md +290 -0
  614. package/data/uni-app-x-docs/worktile/NOTE.md +7 -0
  615. package/data/uniappx/404.md +2 -0
  616. package/data/uniappx/_sidebar.md +140 -0
  617. package/data/uniappx/adapt.md +165 -0
  618. package/data/uniappx/ai/NOTE.md +5 -0
  619. package/data/uniappx/api/README.md +98 -0
  620. package/data/uniappx/api/_sidebar.md +165 -0
  621. package/data/uniappx/api/accelerometer.md +322 -0
  622. package/data/uniappx/api/action-sheet.md +192 -0
  623. package/data/uniappx/api/animation-frame.md +125 -0
  624. package/data/uniappx/api/app-route.md +632 -0
  625. package/data/uniappx/api/authentication.md +267 -0
  626. package/data/uniappx/api/base64.md +127 -0
  627. package/data/uniappx/api/bio-auth.md +3 -0
  628. package/data/uniappx/api/calendar.md +400 -0
  629. package/data/uniappx/api/canvas-get-image-data.md +3 -0
  630. package/data/uniappx/api/canvas-put-image-data.md +3 -0
  631. package/data/uniappx/api/canvas-to-temp-file-path.md +62 -0
  632. package/data/uniappx/api/canvasrenderingcontext2d.md +128 -0
  633. package/data/uniappx/api/capture-screen.md +173 -0
  634. package/data/uniappx/api/capturescreen.md +3 -0
  635. package/data/uniappx/api/choose-file.md +174 -0
  636. package/data/uniappx/api/choose-image.md +312 -0
  637. package/data/uniappx/api/choose-location.md +412 -0
  638. package/data/uniappx/api/choose-media.md +272 -0
  639. package/data/uniappx/api/choose-video.md +165 -0
  640. package/data/uniappx/api/clipboard.md +155 -0
  641. package/data/uniappx/api/compass.md +351 -0
  642. package/data/uniappx/api/compress-image.md +147 -0
  643. package/data/uniappx/api/compress-video.md +136 -0
  644. package/data/uniappx/api/connect-event-source.md +225 -0
  645. package/data/uniappx/api/contact.md +153 -0
  646. package/data/uniappx/api/create-camera-context.md +346 -0
  647. package/data/uniappx/api/create-canvas-context-async.md +167 -0
  648. package/data/uniappx/api/create-editor-context-async.md +605 -0
  649. package/data/uniappx/api/create-inner-audio-context.md +704 -0
  650. package/data/uniappx/api/create-intersection-observer.md +195 -0
  651. package/data/uniappx/api/create-interstitial-ad.md +253 -0
  652. package/data/uniappx/api/create-live-player-context.md +185 -0
  653. package/data/uniappx/api/create-live-pusher-context.md +282 -0
  654. package/data/uniappx/api/create-map-context.md +677 -0
  655. package/data/uniappx/api/create-request-permission-listener.md +147 -0
  656. package/data/uniappx/api/create-rewarded-video-ad.md +302 -0
  657. package/data/uniappx/api/create-selector-query.md +609 -0
  658. package/data/uniappx/api/create-video-context.md +190 -0
  659. package/data/uniappx/api/create-webview-context.md +274 -0
  660. package/data/uniappx/api/create-worker.md +607 -0
  661. package/data/uniappx/api/dialog-page.md +377 -0
  662. package/data/uniappx/api/dom/README.md +319 -0
  663. package/data/uniappx/api/dom/cssstyledeclaration.md +341 -0
  664. package/data/uniappx/api/dom/domrect.md +30 -0
  665. package/data/uniappx/api/dom/drawablecontext.md +63 -0
  666. package/data/uniappx/api/dom/element.md +3 -0
  667. package/data/uniappx/api/dom/unicanvaselement.md +29 -0
  668. package/data/uniappx/api/dom/unielement.md +211 -0
  669. package/data/uniappx/api/dom/uniimageelement.md +23 -0
  670. package/data/uniappx/api/dom/uniinputelement.md +25 -0
  671. package/data/uniappx/api/dom/uninativeviewelement.md +18 -0
  672. package/data/uniappx/api/dom/uniresizeobserver.md +20 -0
  673. package/data/uniappx/api/dom/unitextareaelement.md +25 -0
  674. package/data/uniappx/api/dom/unitextelement.md +23 -0
  675. package/data/uniappx/api/dom/univideoelement.md +18 -0
  676. package/data/uniappx/api/dom/uniwebviewelement.md +18 -0
  677. package/data/uniappx/api/download-file.md +226 -0
  678. package/data/uniappx/api/env.md +101 -0
  679. package/data/uniappx/api/event-bus.md +184 -0
  680. package/data/uniappx/api/exit.md +134 -0
  681. package/data/uniappx/api/ext.md +61 -0
  682. package/data/uniappx/api/facial-recognition-meta-info.md +131 -0
  683. package/data/uniappx/api/facial-recognition-verify.md +3 -0
  684. package/data/uniappx/api/file-system-spec.md +223 -0
  685. package/data/uniappx/api/get-accessibility-info.md +113 -0
  686. package/data/uniappx/api/get-app-authorize-setting.md +276 -0
  687. package/data/uniappx/api/get-app-base-info.md +175 -0
  688. package/data/uniappx/api/get-app.md +175 -0
  689. package/data/uniappx/api/get-background-audio-manager.md +509 -0
  690. package/data/uniappx/api/get-battery-info.md +106 -0
  691. package/data/uniappx/api/get-current-pages.md +215 -0
  692. package/data/uniappx/api/get-device-info.md +188 -0
  693. package/data/uniappx/api/get-element-by-id.md +103 -0
  694. package/data/uniappx/api/get-element.md +3 -0
  695. package/data/uniappx/api/get-file-system-manager.md +2351 -0
  696. package/data/uniappx/api/get-image-info.md +143 -0
  697. package/data/uniappx/api/get-launch-options-sync.md +3 -0
  698. package/data/uniappx/api/get-location.md +362 -0
  699. package/data/uniappx/api/get-network-type.md +96 -0
  700. package/data/uniappx/api/get-performance.md +299 -0
  701. package/data/uniappx/api/get-provider.md +3 -0
  702. package/data/uniappx/api/get-recorder-manager.md +408 -0
  703. package/data/uniappx/api/get-system-info.md +527 -0
  704. package/data/uniappx/api/get-system-setting.md +133 -0
  705. package/data/uniappx/api/get-univerify-manager.md +549 -0
  706. package/data/uniappx/api/get-video-info.md +150 -0
  707. package/data/uniappx/api/get-window-info.md +163 -0
  708. package/data/uniappx/api/gyroscope.md +389 -0
  709. package/data/uniappx/api/image.md +40 -0
  710. package/data/uniappx/api/install-apk.md +93 -0
  711. package/data/uniappx/api/interceptor.md +84 -0
  712. package/data/uniappx/api/is-simulator.md +120 -0
  713. package/data/uniappx/api/keyboard.md +194 -0
  714. package/data/uniappx/api/launch.md +200 -0
  715. package/data/uniappx/api/load-font-face.md +206 -0
  716. package/data/uniappx/api/loading.md +186 -0
  717. package/data/uniappx/api/locale.md +74 -0
  718. package/data/uniappx/api/location-change.md +533 -0
  719. package/data/uniappx/api/make-phone-call.md +102 -0
  720. package/data/uniappx/api/memory.md +135 -0
  721. package/data/uniappx/api/modal.md +233 -0
  722. package/data/uniappx/api/navigator-bar-loading.md +122 -0
  723. package/data/uniappx/api/navigator.md +478 -0
  724. package/data/uniappx/api/network-status-change.md +145 -0
  725. package/data/uniappx/api/network-summarize.md +40 -0
  726. package/data/uniappx/api/nodes-info.md +3 -0
  727. package/data/uniappx/api/on-tab-bar-mid-button-tap.md +34 -0
  728. package/data/uniappx/api/open-app-authorize-setting.md +117 -0
  729. package/data/uniappx/api/open-document.md +122 -0
  730. package/data/uniappx/api/open-location.md +154 -0
  731. package/data/uniappx/api/page-scroll-to.md +170 -0
  732. package/data/uniappx/api/path2d.md +48 -0
  733. package/data/uniappx/api/preview-image.md +341 -0
  734. package/data/uniappx/api/privacy.md +232 -0
  735. package/data/uniappx/api/provider.md +329 -0
  736. package/data/uniappx/api/pull-down-refresh.md +154 -0
  737. package/data/uniappx/api/push.md +1 -0
  738. package/data/uniappx/api/report.md +150 -0
  739. package/data/uniappx/api/request-merchant-transfer.md +117 -0
  740. package/data/uniappx/api/request-payment.md +315 -0
  741. package/data/uniappx/api/request-system-permission.md +220 -0
  742. package/data/uniappx/api/request.md +518 -0
  743. package/data/uniappx/api/rpx2px.md +94 -0
  744. package/data/uniappx/api/save-image-to-photos-album.md +115 -0
  745. package/data/uniappx/api/save-video-to-photos-album.md +102 -0
  746. package/data/uniappx/api/scan-code.md +118 -0
  747. package/data/uniappx/api/screen-brightness.md +333 -0
  748. package/data/uniappx/api/set-navigation-bar-color.md +133 -0
  749. package/data/uniappx/api/set-navigation-bar-title.md +117 -0
  750. package/data/uniappx/api/set-tab-bar.md +651 -0
  751. package/data/uniappx/api/set-tabbar.md +3 -0
  752. package/data/uniappx/api/share-with-system.md +139 -0
  753. package/data/uniappx/api/share.md +325 -0
  754. package/data/uniappx/api/show-action-sheet.md +3 -0
  755. package/data/uniappx/api/show-loading.md +3 -0
  756. package/data/uniappx/api/show-modal.md +3 -0
  757. package/data/uniappx/api/show-toast.md +3 -0
  758. package/data/uniappx/api/sign-in.md +358 -0
  759. package/data/uniappx/api/storage.md +719 -0
  760. package/data/uniappx/api/theme-change.md +742 -0
  761. package/data/uniappx/api/theme.md +3 -0
  762. package/data/uniappx/api/toast.md +180 -0
  763. package/data/uniappx/api/uni-push.md +513 -0
  764. package/data/uniappx/api/unicloud/README.md +87 -0
  765. package/data/uniappx/api/unicloud/database.md +1028 -0
  766. package/data/uniappx/api/unicloud/function.md +83 -0
  767. package/data/uniappx/api/unicloud/object.md +138 -0
  768. package/data/uniappx/api/unicloud/sse-channel.md +92 -0
  769. package/data/uniappx/api/unicloud/storage.md +204 -0
  770. package/data/uniappx/api/unicloud/utils.md +153 -0
  771. package/data/uniappx/api/unipage.md +263 -0
  772. package/data/uniappx/api/upload-file.md +233 -0
  773. package/data/uniappx/api/vibrate.md +177 -0
  774. package/data/uniappx/api/virtual-payment.md +517 -0
  775. package/data/uniappx/api/websocket-global.md +3 -0
  776. package/data/uniappx/api/websocket.md +562 -0
  777. package/data/uniappx/api/wide-screen-adaptation.md +433 -0
  778. package/data/uniappx/api/wifi.md +508 -0
  779. package/data/uniappx/api/window.md +88 -0
  780. package/data/uniappx/app-harmony/README.md +74 -0
  781. package/data/uniappx/app-harmony/harmony-vapor.md +3 -0
  782. package/data/uniappx/app-vapor.md +583 -0
  783. package/data/uniappx/benchmark/vapor-benchmark-android.md +483 -0
  784. package/data/uniappx/benchmark/vapor-benchmark-harmony.md +309 -0
  785. package/data/uniappx/benchmark/vapor-benchmark-ios.md +373 -0
  786. package/data/uniappx/collocation/_sidebar.md +15 -0
  787. package/data/uniappx/collocation/app.md +375 -0
  788. package/data/uniappx/collocation/manifest-android.md +1289 -0
  789. package/data/uniappx/collocation/manifest-harmony.md +152 -0
  790. package/data/uniappx/collocation/manifest-ios.md +710 -0
  791. package/data/uniappx/collocation/manifest-modules.md +508 -0
  792. package/data/uniappx/collocation/manifest-splashscreen.md +227 -0
  793. package/data/uniappx/collocation/manifest.md +745 -0
  794. package/data/uniappx/collocation/pagesjson.md +790 -0
  795. package/data/uniappx/collocation/themejson.md +176 -0
  796. package/data/uniappx/compiler/README.md +121 -0
  797. package/data/uniappx/compiler/_sidebar.md +4 -0
  798. package/data/uniappx/component/README.md +206 -0
  799. package/data/uniappx/component/_sidebar.md +118 -0
  800. package/data/uniappx/component/ad-custom.md +29 -0
  801. package/data/uniappx/component/ad.md +124 -0
  802. package/data/uniappx/component/animation-view.md +51 -0
  803. package/data/uniappx/component/aria-component.md +21 -0
  804. package/data/uniappx/component/audio.md +4 -0
  805. package/data/uniappx/component/block.md +26 -0
  806. package/data/uniappx/component/button.md +298 -0
  807. package/data/uniappx/component/camera.md +303 -0
  808. package/data/uniappx/component/canvas.md +230 -0
  809. package/data/uniappx/component/channel-live.md +27 -0
  810. package/data/uniappx/component/channel-video.md +38 -0
  811. package/data/uniappx/component/checkbox-group.md +56 -0
  812. package/data/uniappx/component/checkbox.md +247 -0
  813. package/data/uniappx/component/common.md +637 -0
  814. package/data/uniappx/component/cover-image.md +42 -0
  815. package/data/uniappx/component/cover-view.md +93 -0
  816. package/data/uniappx/component/custom-tab-bar.md +36 -0
  817. package/data/uniappx/component/double-tap-gesture-handler.md +36 -0
  818. package/data/uniappx/component/draggable-sheet.md +31 -0
  819. package/data/uniappx/component/editor.md +329 -0
  820. package/data/uniappx/component/flow-item.md +3 -0
  821. package/data/uniappx/component/force-press-gesture-handler.md +36 -0
  822. package/data/uniappx/component/form.md +378 -0
  823. package/data/uniappx/component/functional-page-navigator.md +43 -0
  824. package/data/uniappx/component/glass-effect-view.md +217 -0
  825. package/data/uniappx/component/grid-builder.md +39 -0
  826. package/data/uniappx/component/grid-view.md +35 -0
  827. package/data/uniappx/component/horizontal-drag-gesture-handler.md +40 -0
  828. package/data/uniappx/component/icon.md +41 -0
  829. package/data/uniappx/component/image.md +264 -0
  830. package/data/uniappx/component/input.md +899 -0
  831. package/data/uniappx/component/keyboard-accessory.md +21 -0
  832. package/data/uniappx/component/label.md +135 -0
  833. package/data/uniappx/component/list-builder.md +36 -0
  834. package/data/uniappx/component/list-item.md +1 -0
  835. package/data/uniappx/component/list-view.md +508 -0
  836. package/data/uniappx/component/live-player.md +267 -0
  837. package/data/uniappx/component/live-pusher.md +343 -0
  838. package/data/uniappx/component/loading.md +309 -0
  839. package/data/uniappx/component/long-press-gesture-handler.md +40 -0
  840. package/data/uniappx/component/map.md +381 -0
  841. package/data/uniappx/component/match-media.md +132 -0
  842. package/data/uniappx/component/movable-area.md +37 -0
  843. package/data/uniappx/component/movable-view.md +157 -0
  844. package/data/uniappx/component/native-component.md +21 -0
  845. package/data/uniappx/component/native-view.md +342 -0
  846. package/data/uniappx/component/navigation-bar.md +44 -0
  847. package/data/uniappx/component/navigator.md +143 -0
  848. package/data/uniappx/component/nested-scroll-body.md +122 -0
  849. package/data/uniappx/component/nested-scroll-header.md +121 -0
  850. package/data/uniappx/component/nested-scroll.md +6 -0
  851. package/data/uniappx/component/official-account.md +21 -0
  852. package/data/uniappx/component/open-container.md +38 -0
  853. package/data/uniappx/component/page-container.md +386 -0
  854. package/data/uniappx/component/page-meta.md +79 -0
  855. package/data/uniappx/component/pan-gesture-handler.md +40 -0
  856. package/data/uniappx/component/picker-view-column.md +3 -0
  857. package/data/uniappx/component/picker-view.md +180 -0
  858. package/data/uniappx/component/picker.md +370 -0
  859. package/data/uniappx/component/progress.md +163 -0
  860. package/data/uniappx/component/radio-group.md +56 -0
  861. package/data/uniappx/component/radio.md +218 -0
  862. package/data/uniappx/component/rich-text.md +244 -0
  863. package/data/uniappx/component/root-portal.md +26 -0
  864. package/data/uniappx/component/scale-gesture-handler.md +45 -0
  865. package/data/uniappx/component/scroll-view.md +556 -0
  866. package/data/uniappx/component/share-element.md +221 -0
  867. package/data/uniappx/component/slider.md +232 -0
  868. package/data/uniappx/component/snapshot.md +30 -0
  869. package/data/uniappx/component/span.md +21 -0
  870. package/data/uniappx/component/sticky-header.md +138 -0
  871. package/data/uniappx/component/sticky-section.md +152 -0
  872. package/data/uniappx/component/sticky.md +6 -0
  873. package/data/uniappx/component/store-home.md +26 -0
  874. package/data/uniappx/component/store-product.md +28 -0
  875. package/data/uniappx/component/swiper-item.md +3 -0
  876. package/data/uniappx/component/swiper.md +344 -0
  877. package/data/uniappx/component/switch.md +183 -0
  878. package/data/uniappx/component/tap-gesture-handler.md +36 -0
  879. package/data/uniappx/component/text.md +384 -0
  880. package/data/uniappx/component/textarea.md +599 -0
  881. package/data/uniappx/component/uni-ui-x/README.md +165 -0
  882. package/data/uniappx/component/uni-ui-x/uni-badge-view.md +260 -0
  883. package/data/uniappx/component/uni-ui-x/uni-collapse-item.md +3 -0
  884. package/data/uniappx/component/uni-ui-x/uni-collapse.md +652 -0
  885. package/data/uniappx/component/uni-ui-x/uni-drag-cell.md +782 -0
  886. package/data/uniappx/component/uni-ui-x/uni-fab-button.md +137 -0
  887. package/data/uniappx/component/uni-ui-x/uni-index-bar.md +224 -0
  888. package/data/uniappx/component/uni-ui-x/uni-link.md +190 -0
  889. package/data/uniappx/component/uni-ui-x/uni-nav-bar.md +173 -0
  890. package/data/uniappx/component/uni-ui-x/uni-number-box.md +234 -0
  891. package/data/uniappx/component/uni-ui-x/uni-rate.md +151 -0
  892. package/data/uniappx/component/uni-ui-x/uni-refresh-box.md +250 -0
  893. package/data/uniappx/component/uni-ui-x/uni-tab-bar.md +3 -0
  894. package/data/uniappx/component/uni-ui-x/uni-tab-content.md +3 -0
  895. package/data/uniappx/component/uni-ui-x/uni-tab-item.md +3 -0
  896. package/data/uniappx/component/uni-ui-x/uni-tab-midbutton.md +3 -0
  897. package/data/uniappx/component/uni-ui-x/uni-tab.md +1203 -0
  898. package/data/uniappx/component/uni-ui-x/uni-time-format.md +213 -0
  899. package/data/uniappx/component/unicloud-db.md +270 -0
  900. package/data/uniappx/component/vertical-drag-gesture-handler.md +40 -0
  901. package/data/uniappx/component/video.md +630 -0
  902. package/data/uniappx/component/view.md +216 -0
  903. package/data/uniappx/component/voip-room.md +43 -0
  904. package/data/uniappx/component/waterflow.md +407 -0
  905. package/data/uniappx/component/web-view.md +449 -0
  906. package/data/uniappx/css/README.md +436 -0
  907. package/data/uniappx/css/_sidebar.md +103 -0
  908. package/data/uniappx/css/align-content.md +338 -0
  909. package/data/uniappx/css/align-items.md +276 -0
  910. package/data/uniappx/css/align-self.md +291 -0
  911. package/data/uniappx/css/animation-composition.md +33 -0
  912. package/data/uniappx/css/animation-delay.md +26 -0
  913. package/data/uniappx/css/animation-direction.md +34 -0
  914. package/data/uniappx/css/animation-duration.md +31 -0
  915. package/data/uniappx/css/animation-fill-mode.md +34 -0
  916. package/data/uniappx/css/animation-iteration-count.md +31 -0
  917. package/data/uniappx/css/animation-name.md +31 -0
  918. package/data/uniappx/css/animation-play-state.md +32 -0
  919. package/data/uniappx/css/animation-range-end.md +26 -0
  920. package/data/uniappx/css/animation-range-start.md +26 -0
  921. package/data/uniappx/css/animation-range.md +34 -0
  922. package/data/uniappx/css/animation-timeline.md +34 -0
  923. package/data/uniappx/css/animation-timing-function.md +45 -0
  924. package/data/uniappx/css/animation.md +36 -0
  925. package/data/uniappx/css/backdrop-filter.md +255 -0
  926. package/data/uniappx/css/background-clip.md +36 -0
  927. package/data/uniappx/css/background-color.md +353 -0
  928. package/data/uniappx/css/background-image.md +152 -0
  929. package/data/uniappx/css/background.md +35 -0
  930. package/data/uniappx/css/border-bottom-color.md +39 -0
  931. package/data/uniappx/css/border-bottom-left-radius.md +33 -0
  932. package/data/uniappx/css/border-bottom-right-radius.md +33 -0
  933. package/data/uniappx/css/border-bottom-style.md +37 -0
  934. package/data/uniappx/css/border-bottom-width.md +44 -0
  935. package/data/uniappx/css/border-bottom.md +201 -0
  936. package/data/uniappx/css/border-color.md +284 -0
  937. package/data/uniappx/css/border-left-color.md +34 -0
  938. package/data/uniappx/css/border-left-style.md +37 -0
  939. package/data/uniappx/css/border-left-width.md +44 -0
  940. package/data/uniappx/css/border-left.md +200 -0
  941. package/data/uniappx/css/border-radius.md +391 -0
  942. package/data/uniappx/css/border-right-color.md +34 -0
  943. package/data/uniappx/css/border-right-style.md +37 -0
  944. package/data/uniappx/css/border-right-width.md +44 -0
  945. package/data/uniappx/css/border-right.md +201 -0
  946. package/data/uniappx/css/border-style.md +271 -0
  947. package/data/uniappx/css/border-top-color.md +34 -0
  948. package/data/uniappx/css/border-top-left-radius.md +33 -0
  949. package/data/uniappx/css/border-top-right-radius.md +33 -0
  950. package/data/uniappx/css/border-top-style.md +37 -0
  951. package/data/uniappx/css/border-top-width.md +44 -0
  952. package/data/uniappx/css/border-top.md +201 -0
  953. package/data/uniappx/css/border-width.md +415 -0
  954. package/data/uniappx/css/border.md +302 -0
  955. package/data/uniappx/css/bottom.md +259 -0
  956. package/data/uniappx/css/box-shadow.md +879 -0
  957. package/data/uniappx/css/box-sizing.md +353 -0
  958. package/data/uniappx/css/color.md +158 -0
  959. package/data/uniappx/css/common/at-rules.md +244 -0
  960. package/data/uniappx/css/common/color.md +40 -0
  961. package/data/uniappx/css/common/function.md +664 -0
  962. package/data/uniappx/css/common/length.md +178 -0
  963. package/data/uniappx/css/common/selector.md +55 -0
  964. package/data/uniappx/css/common/style-isolation.md +215 -0
  965. package/data/uniappx/css/common/variable.md +1 -0
  966. package/data/uniappx/css/direction.md +146 -0
  967. package/data/uniappx/css/display.md +42 -0
  968. package/data/uniappx/css/flex-basis.md +306 -0
  969. package/data/uniappx/css/flex-direction.md +243 -0
  970. package/data/uniappx/css/flex-flow.md +283 -0
  971. package/data/uniappx/css/flex-grow.md +318 -0
  972. package/data/uniappx/css/flex-shrink.md +313 -0
  973. package/data/uniappx/css/flex-wrap.md +259 -0
  974. package/data/uniappx/css/flex.md +216 -0
  975. package/data/uniappx/css/font-family.md +187 -0
  976. package/data/uniappx/css/font-size.md +176 -0
  977. package/data/uniappx/css/font-style.md +139 -0
  978. package/data/uniappx/css/font-weight.md +167 -0
  979. package/data/uniappx/css/height.md +239 -0
  980. package/data/uniappx/css/justify-content.md +286 -0
  981. package/data/uniappx/css/left.md +260 -0
  982. package/data/uniappx/css/letter-spacing.md +149 -0
  983. package/data/uniappx/css/line-height.md +173 -0
  984. package/data/uniappx/css/lines.md +37 -0
  985. package/data/uniappx/css/margin-bottom.md +281 -0
  986. package/data/uniappx/css/margin-left.md +281 -0
  987. package/data/uniappx/css/margin-right.md +278 -0
  988. package/data/uniappx/css/margin-top.md +274 -0
  989. package/data/uniappx/css/margin.md +315 -0
  990. package/data/uniappx/css/max-height.md +242 -0
  991. package/data/uniappx/css/max-width.md +251 -0
  992. package/data/uniappx/css/min-height.md +252 -0
  993. package/data/uniappx/css/min-width.md +243 -0
  994. package/data/uniappx/css/opacity.md +248 -0
  995. package/data/uniappx/css/overflow.md +330 -0
  996. package/data/uniappx/css/padding-bottom.md +241 -0
  997. package/data/uniappx/css/padding-left.md +234 -0
  998. package/data/uniappx/css/padding-right.md +242 -0
  999. package/data/uniappx/css/padding-top.md +234 -0
  1000. package/data/uniappx/css/padding.md +309 -0
  1001. package/data/uniappx/css/pointer-events.md +155 -0
  1002. package/data/uniappx/css/position.md +444 -0
  1003. package/data/uniappx/css/right.md +260 -0
  1004. package/data/uniappx/css/text-align.md +154 -0
  1005. package/data/uniappx/css/text-decoration-color.md +35 -0
  1006. package/data/uniappx/css/text-decoration-line.md +144 -0
  1007. package/data/uniappx/css/text-decoration-style.md +41 -0
  1008. package/data/uniappx/css/text-decoration-thickness.md +39 -0
  1009. package/data/uniappx/css/text-decoration.md +52 -0
  1010. package/data/uniappx/css/text-overflow.md +176 -0
  1011. package/data/uniappx/css/text-shadow.md +146 -0
  1012. package/data/uniappx/css/top.md +258 -0
  1013. package/data/uniappx/css/transform-origin.md +298 -0
  1014. package/data/uniappx/css/transform.md +50 -0
  1015. package/data/uniappx/css/transition-delay.md +253 -0
  1016. package/data/uniappx/css/transition-duration.md +275 -0
  1017. package/data/uniappx/css/transition-property.md +67 -0
  1018. package/data/uniappx/css/transition-timing-function.md +259 -0
  1019. package/data/uniappx/css/transition.md +527 -0
  1020. package/data/uniappx/css/visibility.md +198 -0
  1021. package/data/uniappx/css/white-space.md +162 -0
  1022. package/data/uniappx/css/width.md +300 -0
  1023. package/data/uniappx/css/z-index.md +411 -0
  1024. package/data/uniappx/debug/android-inspector.md +54 -0
  1025. package/data/uniappx/i18n.md +358 -0
  1026. package/data/uniappx/mp/README.md +155 -0
  1027. package/data/uniappx/mp/native-component-and-wxs.md +151 -0
  1028. package/data/uniappx/native/README.md +65 -0
  1029. package/data/uniappx/native/debug/android.md +122 -0
  1030. package/data/uniappx/native/debug/harmony.md +116 -0
  1031. package/data/uniappx/native/debug/ios.md +84 -0
  1032. package/data/uniappx/native/download/android.md +132 -0
  1033. package/data/uniappx/native/download/ios.md +31 -0
  1034. package/data/uniappx/native/modules/android/others.md +1343 -0
  1035. package/data/uniappx/native/modules/android/uni-ad.md +99 -0
  1036. package/data/uniappx/native/modules/android/uni-facialRecognitionVerify.md +69 -0
  1037. package/data/uniappx/native/modules/android/uni-getLocation.md +121 -0
  1038. package/data/uniappx/native/modules/android/uni-map-tencent.md +92 -0
  1039. package/data/uniappx/native/modules/android/uni-oauth.md +57 -0
  1040. package/data/uniappx/native/modules/android/uni-payment.md +110 -0
  1041. package/data/uniappx/native/modules/android/uni-push.md +217 -0
  1042. package/data/uniappx/native/modules/android/uni-share.md +57 -0
  1043. package/data/uniappx/native/modules/android/uni-verify.md +101 -0
  1044. package/data/uniappx/native/modules/android/uni-video.md +125 -0
  1045. package/data/uniappx/native/modules/harmony/facialVerify.md +45 -0
  1046. package/data/uniappx/native/modules/harmony/location.md +43 -0
  1047. package/data/uniappx/native/modules/harmony/map.md +64 -0
  1048. package/data/uniappx/native/modules/harmony/modules.md +23 -0
  1049. package/data/uniappx/native/modules/harmony/oauth.md +47 -0
  1050. package/data/uniappx/native/modules/harmony/pay.md +85 -0
  1051. package/data/uniappx/native/modules/harmony/push.md +74 -0
  1052. package/data/uniappx/native/modules/harmony/verify.md +45 -0
  1053. package/data/uniappx/native/modules/ios/modules.md +943 -0
  1054. package/data/uniappx/native/permission/android_permission_adapter.md +62 -0
  1055. package/data/uniappx/native/use/android.md +521 -0
  1056. package/data/uniappx/native/use/androidcomm.md +104 -0
  1057. package/data/uniappx/native/use/androiduts.md +388 -0
  1058. package/data/uniappx/native/use/harmony.md +99 -0
  1059. package/data/uniappx/native/use/harmonyapi.md +190 -0
  1060. package/data/uniappx/native/use/harmonyuts.md +62 -0
  1061. package/data/uniappx/native/use/ios.md +90 -0
  1062. package/data/uniappx/native/use/iosapi.md +288 -0
  1063. package/data/uniappx/native/use/iosuts.md +87 -0
  1064. package/data/uniappx/page.md +488 -0
  1065. package/data/uniappx/performance.md +175 -0
  1066. package/data/uniappx/plugin/NOTE.md +5 -0
  1067. package/data/uniappx/project.md +148 -0
  1068. package/data/uniappx/readme.md +381 -0
  1069. package/data/uniappx/release-note-alpha.md +2361 -0
  1070. package/data/uniappx/release.md +2224 -0
  1071. package/data/uniappx/sample.md +157 -0
  1072. package/data/uniappx/select/native-render-and-self-render.md +382 -0
  1073. package/data/uniappx/select.md +3 -0
  1074. package/data/uniappx/tutorial/android-16kb.md +91 -0
  1075. package/data/uniappx/tutorial/android-memoryleak.md +542 -0
  1076. package/data/uniappx/tutorial/app-env.md +80 -0
  1077. package/data/uniappx/tutorial/app-market.md +51 -0
  1078. package/data/uniappx/tutorial/app-package.md +195 -0
  1079. package/data/uniappx/tutorial/app-playground.md +188 -0
  1080. package/data/uniappx/tutorial/app-update-wgt.md +9 -0
  1081. package/data/uniappx/tutorial/bug_repair.md +40 -0
  1082. package/data/uniappx/tutorial/codegap.md +223 -0
  1083. package/data/uniappx/tutorial/compatibility.md +119 -0
  1084. package/data/uniappx/tutorial/compliance.md +671 -0
  1085. package/data/uniappx/tutorial/debug/devtools.md +134 -0
  1086. package/data/uniappx/tutorial/idref.md +121 -0
  1087. package/data/uniappx/tutorial/ls-plugin.md +181 -0
  1088. package/data/uniappx/tutorial/request.md +204 -0
  1089. package/data/uniappx/tutorial/rules_mcp.md +121 -0
  1090. package/data/uniappx/tutorial/stickynestlist.md +68 -0
  1091. package/data/uniappx/tutorial/store.md +130 -0
  1092. package/data/uniappx/uniapptox.md +145 -0
  1093. package/data/uniappx/uts/README.md +443 -0
  1094. package/data/uniappx/uts/_sidebar.md +55 -0
  1095. package/data/uniappx/uts/buildin-object-api/array.md +2265 -0
  1096. package/data/uniappx/uts/buildin-object-api/arraybuffer.md +480 -0
  1097. package/data/uniappx/uts/buildin-object-api/console.md +520 -0
  1098. package/data/uniappx/uts/buildin-object-api/dataview.md +853 -0
  1099. package/data/uniappx/uts/buildin-object-api/date.md +1534 -0
  1100. package/data/uniappx/uts/buildin-object-api/error.md +30 -0
  1101. package/data/uniappx/uts/buildin-object-api/float32array.md +581 -0
  1102. package/data/uniappx/uts/buildin-object-api/float64array.md +626 -0
  1103. package/data/uniappx/uts/buildin-object-api/global.md +600 -0
  1104. package/data/uniappx/uts/buildin-object-api/int16array.md +1069 -0
  1105. package/data/uniappx/uts/buildin-object-api/int32array.md +1137 -0
  1106. package/data/uniappx/uts/buildin-object-api/int8array.md +1166 -0
  1107. package/data/uniappx/uts/buildin-object-api/json.md +407 -0
  1108. package/data/uniappx/uts/buildin-object-api/map.md +479 -0
  1109. package/data/uniappx/uts/buildin-object-api/math.md +1525 -0
  1110. package/data/uniappx/uts/buildin-object-api/number.md +852 -0
  1111. package/data/uniappx/uts/buildin-object-api/promise.md +1444 -0
  1112. package/data/uniappx/uts/buildin-object-api/regexp.md +534 -0
  1113. package/data/uniappx/uts/buildin-object-api/set.md +317 -0
  1114. package/data/uniappx/uts/buildin-object-api/string.md +1604 -0
  1115. package/data/uniappx/uts/buildin-object-api/textdecoder.md +133 -0
  1116. package/data/uniappx/uts/buildin-object-api/textencoder.md +60 -0
  1117. package/data/uniappx/uts/buildin-object-api/timers.md +145 -0
  1118. package/data/uniappx/uts/buildin-object-api/uint16array.md +1154 -0
  1119. package/data/uniappx/uts/buildin-object-api/uint32array.md +1165 -0
  1120. package/data/uniappx/uts/buildin-object-api/uint8array.md +1146 -0
  1121. package/data/uniappx/uts/buildin-object-api/uint8clampedarray.md +1147 -0
  1122. package/data/uniappx/uts/buildin-object-api/utsjsonobject.md +1297 -0
  1123. package/data/uniappx/uts/class.md +462 -0
  1124. package/data/uniappx/uts/compiler-known-issues.md +865 -0
  1125. package/data/uniappx/uts/conditional.md +206 -0
  1126. package/data/uniappx/uts/data-type.md +2242 -0
  1127. package/data/uniappx/uts/enumerability.md +15 -0
  1128. package/data/uniappx/uts/enumerability_iterable.md +200 -0
  1129. package/data/uniappx/uts/exception.md +25 -0
  1130. package/data/uniappx/uts/function.md +358 -0
  1131. package/data/uniappx/uts/generics.md +246 -0
  1132. package/data/uniappx/uts/interface.md +35 -0
  1133. package/data/uniappx/uts/iterable.md +137 -0
  1134. package/data/uniappx/uts/keywords.md +393 -0
  1135. package/data/uniappx/uts/literal.md +216 -0
  1136. package/data/uniappx/uts/loops.md +236 -0
  1137. package/data/uniappx/uts/module.md +92 -0
  1138. package/data/uniappx/uts/object.md +155 -0
  1139. package/data/uniappx/uts/operator.md +295 -0
  1140. package/data/uniappx/uts/runtime-known-issues.md +94 -0
  1141. package/data/uniappx/uts/type-aliases.md +43 -0
  1142. package/data/uniappx/uts/type-compatibility.md +133 -0
  1143. package/data/uniappx/uts/uts-optimize.md +33 -0
  1144. package/data/uniappx/uts/uts_diff_ts.md +2443 -0
  1145. package/data/uniappx/uts/utsactivitycallback.md +3099 -0
  1146. package/data/uniappx/uts/utsandroid.md +1461 -0
  1147. package/data/uniappx/uts/utsandroidhookproxy.md +34 -0
  1148. package/data/uniappx/uts/utsharmony.md +348 -0
  1149. package/data/uniappx/uts/utsios.md +466 -0
  1150. package/data/uniappx/uts/utsioshookproxy.md +374 -0
  1151. package/data/uniappx/vapor-benchmark.md +9 -0
  1152. package/data/uniappx/vue/README.md +313 -0
  1153. package/data/uniappx/vue/_sidebar.md +10 -0
  1154. package/data/uniappx/vue/advanced-api.md +253 -0
  1155. package/data/uniappx/vue/built-in.md +2133 -0
  1156. package/data/uniappx/vue/component.md +1134 -0
  1157. package/data/uniappx/vue/composition-api.md +2085 -0
  1158. package/data/uniappx/vue/data-bind.md +463 -0
  1159. package/data/uniappx/vue/global-api.md +307 -0
  1160. package/data/uniappx/vue/modifier.md +249 -0
  1161. package/data/uniappx/vue/options-api.md +1489 -0
  1162. package/data/uniappx/vue/others.md +20 -0
  1163. package/data/uniappx/web/README.md +263 -0
  1164. package/data/uniappx/web/ssr.md +238 -0
  1165. package/data/uniappx/worktile/NOTE.md +5 -0
  1166. package/data/uniappx-doc-index.json +7692 -0
  1167. package/dist/main.mjs +67 -45
  1168. package/package.json +1 -1
@@ -0,0 +1,2443 @@
1
+ ## uts 和 ts 的差异
2
+
3
+ ts 虽然有类型,但类型要求不严格。而 uts 为了编译为原生语言,是完全的强类型。
4
+
5
+ 另外为了确保跨平台、高性能,uts 通过规范约束了 ts 中过于灵活而影响开发正确性或者给运行时带来不必要额外开销的特性。
6
+
7
+ 本文罗列了在 uts 跨端开发时限制的 ts 特性,并提供了重构代码的建议。
8
+
9
+ > uni-app x下uts编译器目前[已知的一些问题](./compiler-known-issues.md)
10
+
11
+ > uni-app x下uts常见错误修复建议见[UTS 常见错误修复建议](./uts-optimize.md)
12
+
13
+ > uni-app x下部分[运行错误的说明](./runtime-known-issues.md)
14
+
15
+ ### 概述
16
+
17
+ #### 强制使用静态类型
18
+
19
+ 静态类型是 uts 最重要的特性之一。如果程序采用静态类型,即所有类型在编译时都是已知的,那么开发者就能够容易理解代码中使用了哪些数据结构。
20
+ 同时,由于所有类型在程序实际运行前都是已知的,编译器可以提前验证代码的正确性,从而可以减少运行时的类型检查,有助于提升性能。
21
+
22
+ 基于上述考虑,uts 中的 any 类型与 ts 中的 any 并不一样,它是一个根据目标平台自动适配的跨端类型,通常用于表示"任意的非空类型",
23
+ 在使用时仍需类型转换后才能访问具体类型的方法和属性。
24
+
25
+ #### 不支持结构化类型系统
26
+
27
+ 结构化类型系统(structural typing)是 ts 的一个特性,它意味着类型的兼容性和等价性是基于类型的结构(即它们的属性和方法);
28
+ 而在跨端开发时,uts 采用名义类型系统(nominal typing),类型兼容性检查基于类型名称和显式的继承/实现关系。
29
+ 即使两个类型具有完全相同的结构,如果没有显式的继承/实现关系,它们也不能互相赋值。
30
+ 这与 Kotlin 、Swift 、ArkTS 等静态语言的类型系统保持一致,有助于确保类型安全和代码的可维护性。
31
+
32
+ ## 约束说明
33
+
34
+ ### 1. 核心语言特性
35
+
36
+ #### 不支持 undefined @uts110111119
37
+
38
+ 级别: 错误
39
+
40
+ 错误码: UTS110111119
41
+
42
+ 不支持 undefined。所有变量必须赋值初始化后才能使用。如果需要使用空,请使用 null。<br/> undefined 在 ts 中有很多场景,一个未初始化赋值的变量、一个未传入的方法参数、对象上不存在的属性,都会返回 undefined。
43
+
44
+ | 描述 | UTS-TS | UTS-ArkTS | UTS-Kotlin | UTS-Swift |
45
+ | :- | :- | :- | :- | :- |
46
+ | 适用版本 | 4.75 | 4.75 | 4.75 | 4.75 |
47
+ | 约束状态 | x | x | √ | √ |
48
+
49
+ TypeScript写法:
50
+
51
+ ```ts
52
+ // TypeScript 可以使用 undefined
53
+ let value: string | undefined;
54
+ if (value == undefined) {
55
+ console.log("未定义");
56
+ }
57
+
58
+ function test(param?: string) {
59
+ if (param == undefined) {
60
+ console.log("参数未传");
61
+ }
62
+ }
63
+ ```
64
+
65
+ UTS正确写法:
66
+
67
+ ```ts
68
+ // UTS 使用 null 替代 undefined
69
+ let value: string | null = null; //必须先赋值后使用,哪怕赋值为null。否则Android平台会报编译错误:error: Variable 'value' must be initialized‌
70
+ if (value == null) {
71
+ console.log("未定义");
72
+ }
73
+
74
+ function test(param: string | null) {
75
+ if (param == null) {
76
+ console.log("参数未传");
77
+ }
78
+ }
79
+ ```
80
+
81
+ #### 条件语句必须使用布尔类型 @uts110111120
82
+
83
+ 级别: 错误
84
+
85
+ 错误码: UTS110111120
86
+
87
+ 所有条件语句(if、while、do-while、三元运算符、for 循环的条件部分)必须使用布尔类型作为条件。不支持 ts 中的隐式类型转换和 truthy/falsy 值。
88
+
89
+ | 描述 | UTS-TS | UTS-ArkTS | UTS-Kotlin | UTS-Swift |
90
+ | :- | :- | :- | :- | :- |
91
+ | 适用版本 | 4.75 | 4.75 | 4.75 | 4.75 |
92
+ | 约束状态 | x | x | √ | √ |
93
+
94
+ TypeScript写法:
95
+
96
+ ```ts
97
+ // 允许非布尔值在条件语句中使用
98
+ if (1) {
99
+ } // 数值类型
100
+ while ("") {} // 字符串类型
101
+ do {} while (obj); // 对象类型
102
+ for (let i = 0; i; i++) {} // 作为条件的数值类型
103
+ const value = arr || []; // truthy/falsy 值判断
104
+ ```
105
+
106
+ UTS正确写法:
107
+
108
+ ```ts
109
+ // 必须使用布尔类型或返回布尔值的表达式
110
+ if (x > 0) {
111
+ } // 比较表达式
112
+ while (isValid) {} // 布尔变量
113
+ do {} while (obj != null); // 相等性判断
114
+ for (let i = 0; i < 10; i++) {} // 布尔条件
115
+ const value = arr != null ? arr : []; // 显式的布尔判断
116
+ ```
117
+
118
+ #### 对象字面量默认为 UTSJSONObject 类型
119
+
120
+ 级别:提示
121
+
122
+ 在 UTS 中,所有没有明确类型标注或上下文推断不出具体类型的对象字面量都会被推导为 UTSJSONObject 类型。
123
+ 这与 ts 中对象字面量会根据属性推导出具体结构类型的行为不同。
124
+
125
+ TypeScript写法:
126
+
127
+ ```ts
128
+ // 类型推导为 { name: string, age: number }
129
+ const person = {
130
+ name: "John",
131
+ age: 30,
132
+ };
133
+
134
+ // 可以正常访问推导出的属性
135
+ console.log(person.name);
136
+ ```
137
+
138
+ UTS正确写法:
139
+
140
+ ```ts
141
+ // 类型推导为 UTSJSONObject
142
+ const person = {
143
+ name: "John",
144
+ age: 30,
145
+ }; //对象字面量默认推导为UTSJSONObject
146
+ console.log(person["name"] as string); //UTSJSONObject类型不能直接用.运算符,并且下标访问后的每个值都是any类型,想正确使用时需要as为正确的类型
147
+ console.log(person["age"] as number); //UTS提供了有限的隐式转换能力,UTSJSONObject第一层对象如果可以被编译器识别推导类型,也可以使用.运算符。但第二层起无法使用.运算符,需要使用下标
148
+
149
+ // 在UTS中推荐使用type替代UTSJSONObject
150
+ type Person = {
151
+ name: string;
152
+ age: number;
153
+ };
154
+ // 声明时直接指定类型
155
+ const person2: Person = {
156
+ name: "John",
157
+ age: 30,
158
+ };
159
+ console.log(person2.name);
160
+ ```
161
+
162
+ 在 JSON.parse 的场景中,如果不通过泛型指定 type,那么返回值也是 UTSJSONObject。
163
+
164
+ TS 开发者一般都熟悉使用 interface 来声明类型,UTS 中改为 type 即可。但不熟悉 TS 的开发者,务必需要详细了解[UTSJSONObject](./data-type.md#UTSJSONObject)和[type](./data-type.md#type自定义类型)
165
+
166
+ #### 对象字面量仅支持构造 type 定义的对象类型,不支持 interface @uts110111163
167
+
168
+ 级别: 错误
169
+
170
+ 错误码: UTS110111163
171
+
172
+ ts 中可以通过 interface 或 type 声明对象字面量的类型。 <br/> 在 UTS 中,interface 有其他使用场景,所以对象字面量赋值只能给 type 关键词定义的对象类型。 <br/> 注意:不能赋值给 interface 定义的类型
173
+
174
+ | 描述 | UTS-TS | UTS-ArkTS | UTS-Kotlin | UTS-Swift |
175
+ | :- | :- | :- | :- | :- |
176
+ | 适用版本 | 4.75 | 4.75 | 4.75 | 4.75 |
177
+ | 约束状态 | x | x | √ | √ |
178
+
179
+ TypeScript写法:
180
+
181
+ ```ts
182
+ interface Person {
183
+ name: string;
184
+ age: number;
185
+ }
186
+ // 对象字面量可以赋值 interface 类型
187
+ const person: Person = {
188
+ name: "John",
189
+ age: 30,
190
+ };
191
+ ```
192
+
193
+ UTS正确写法:
194
+
195
+ ```ts
196
+ // 只有 type 定义的对象类型,才可以用对象字面量赋值
197
+ type Person = {
198
+ name: string;
199
+ age: number;
200
+ };
201
+
202
+ // 声明时直接指定类型
203
+ const person1: Person = {
204
+ name: "John",
205
+ age: 30,
206
+ };
207
+ // 使用对象字面量 as 语法
208
+ const person2 = {
209
+ name: "John",
210
+ age: 30,
211
+ } as Person;
212
+ ```
213
+
214
+ #### 不支持变量和函数的声明提升 (hoisting) @uts110111150
215
+
216
+ 级别: 错误
217
+
218
+ 错误码: UTS110111150
219
+
220
+ js/ts 在某些情况写可以忽视代码顺序,实现变量和函数的声明提升 (hoisting)。但 uts 编译为强类型语言时不行,所有变量和函数必须先声明后使用,严格注意顺序,不能访问未声明的变量或函数(包括函数自身)。
221
+
222
+ | 描述 | UTS-TS | UTS-ArkTS | UTS-Kotlin | UTS-Swift |
223
+ | :- | :- | :- | :- | :- |
224
+ | 适用版本 | 4.75 | 4.75 | 4.75 | 4.75 |
225
+ | 约束状态 | x | √ | √ | √ |
226
+
227
+ TypeScript写法:
228
+
229
+ ```ts
230
+ // 变量提升
231
+ console.log(x); // undefined (不会报错)
232
+ var x = 5;
233
+
234
+ // 函数提升
235
+ foo(); // "hello" (可以在声明前调用)
236
+ function foo() {
237
+ console.log("hello");
238
+ }
239
+
240
+ // 可以访问自身
241
+ const factorial = (n: number): number => {
242
+ if (n <= 1) return 1;
243
+ return n * factorial(n - 1); // 可以在函数内部调用自身
244
+ };
245
+ ```
246
+
247
+ UTS正确写法:
248
+
249
+ ```ts
250
+ // 变量必须先声明后使用
251
+ let x = 5;
252
+ console.log(x);
253
+ function foo() {
254
+ console.log("hello");
255
+ }
256
+ // 函数必须先声明后调用
257
+ foo();
258
+
259
+ // 需要先声明函数变量
260
+ let factorial: ((n: number) => number) | null = null;
261
+ factorial = (n: number): number => {
262
+ if (n <= 1) return 1;
263
+ return n * factorial!(n - 1);
264
+ };
265
+ ```
266
+
267
+ #### 使用 let 而非 var @uts110111121
268
+
269
+ 级别: 警告
270
+
271
+ 错误码: UTS110111121
272
+
273
+ 请使用 let 或 const 声明变量。除非你知道你在做什么,否则不要轻易使用它,因为有不同平台差异:<br/> - 编译至 JavaScript 平台时,等同于 JavaScript 平台的 var 。存在变量提升现象,具体参考 var 和 let 的区别 <br/> - 编译至 Kotlin 平台时,等同于 Kotlin 平台的 var(允许重新赋值)
274
+
275
+ | 描述 | UTS-TS | UTS-ArkTS | UTS-Kotlin | UTS-Swift |
276
+ | :- | :- | :- | :- | :- |
277
+ | 适用版本 | 4.75 | 4.75 | 4.75 | 4.75 |
278
+ | 约束状态 | x | √ | √ | √ |
279
+
280
+ ### 2. 类型系统相关
281
+
282
+ #### 对象字面量不能用于类型声明 @uts110111101
283
+
284
+ 级别: 错误
285
+
286
+ 错误码: UTS110111101
287
+
288
+ 不支持直接使用对象字面量声明类型,可以使用 type 别名、类或者接口声明类型。
289
+
290
+ | 描述 | UTS-TS | UTS-ArkTS | UTS-Kotlin | UTS-Swift |
291
+ | :- | :- | :- | :- | :- |
292
+ | 适用版本 | 4.75 | 4.75 | 4.75 | 4.75 |
293
+ | 约束状态 | x | √ | √ | √ |
294
+
295
+ TypeScript写法:
296
+
297
+ ```ts
298
+ let o: { x: number; y: number } = {
299
+ x: 2,
300
+ y: 3,
301
+ };
302
+
303
+ type S = Set<{ x: number; y: number }>;
304
+ ```
305
+
306
+ UTS正确写法:
307
+
308
+ ```ts
309
+ type O = {
310
+ x: number;
311
+ y: number;
312
+ };
313
+
314
+ let o: O = { x: 2, y: 3 };
315
+
316
+ type S = Set<O>;
317
+ ```
318
+
319
+ #### type 定义对象类型时不支持嵌套对象字面量 @uts110111162
320
+
321
+ 级别: 错误
322
+
323
+ 错误码: UTS110111162
324
+
325
+ 当使用 type 定义对象字面量类型时,不支持对象字面量嵌套。如果有嵌套需求,需要提取出来定义一个新的 type。
326
+
327
+ | 描述 | UTS-TS | UTS-ArkTS | UTS-Kotlin | UTS-Swift |
328
+ | :- | :- | :- | :- | :- |
329
+ | 适用版本 | 4.75 | 4.75 | 4.75 | 4.75 |
330
+ | 约束状态 | x | √ | √ | √ |
331
+
332
+ TypeScript写法:
333
+
334
+ ```ts
335
+ type News = {
336
+ id: number;
337
+ author: {
338
+ id: number;
339
+ name: string;
340
+ };
341
+ };
342
+ ```
343
+
344
+ UTS正确写法:
345
+
346
+ ```ts
347
+ // 需要将嵌套的对象提取出来定义新的 type
348
+ type Author = {
349
+ id: number;
350
+ name: string;
351
+ };
352
+
353
+ type News = {
354
+ id: number;
355
+ author: Author;
356
+ };
357
+ ```
358
+
359
+ #### 使用具体的类型而非 unknown @uts110111122
360
+
361
+ 级别: 错误
362
+
363
+ 错误码: UTS110111122
364
+
365
+ 不支持声明类型为 unknown,unknown 仅支持在泛型中使用。
366
+
367
+ | 描述 | UTS-TS | UTS-ArkTS | UTS-Kotlin | UTS-Swift |
368
+ | :- | :- | :- | :- | :- |
369
+ | 适用版本 | 4.75 | 4.75 | 4.75 | 4.75 |
370
+ | 约束状态 | x | x | √ | √ |
371
+
372
+ TypeScript写法:
373
+
374
+ ```ts
375
+ let value1: unknown;
376
+ value1 = true;
377
+ value1 = 42;
378
+ ```
379
+
380
+ UTS正确写法:
381
+
382
+ ```ts
383
+ let value1: any = true;
384
+ let value2: any = 42;
385
+ class A<T> {
386
+ name: T | null = null;
387
+ }
388
+ const a = new A<string>();
389
+ // 仅支持在泛型中使用unknown
390
+ console.log(a instanceof A<unknown>);
391
+ ```
392
+
393
+ #### 不支持条件类型 @uts110111123
394
+
395
+ 级别: 错误
396
+
397
+ 错误码: UTS110111123
398
+
399
+ 不支持条件类型别名,引入带显式约束的新类型。
400
+
401
+ | 描述 | UTS-TS | UTS-ArkTS | UTS-Kotlin | UTS-Swift |
402
+ | :- | :- | :- | :- | :- |
403
+ | 适用版本 | 4.75 | 4.75 | 4.75 | 4.75 |
404
+ | 约束状态 | x | √ | √ | √ |
405
+
406
+ TypeScript写法:
407
+
408
+ ```ts
409
+ type X<T> = T extends number ? T : never;
410
+ type Y<T> = T extends Array<infer Item> ? Item : never;
411
+ ```
412
+
413
+ #### 不支持映射类型 @uts110111124
414
+
415
+ 级别: 错误
416
+
417
+ 错误码: UTS110111124
418
+
419
+ 不支持映射类型,请使用其他语法来表示相同的语义。
420
+
421
+ | 描述 | UTS-TS | UTS-ArkTS | UTS-Kotlin | UTS-Swift |
422
+ | :- | :- | :- | :- | :- |
423
+ | 适用版本 | 4.75 | 4.75 | 4.75 | 4.75 |
424
+ | 约束状态 | x | √ | √ | √ |
425
+
426
+ TypeScript写法:
427
+
428
+ ```ts
429
+ type OptionsFlags<Type> = {
430
+ [Property in keyof Type]: boolean;
431
+ };
432
+ ```
433
+
434
+ UTS正确写法:
435
+
436
+ ```ts
437
+ class C {
438
+ n: number = 0;
439
+ s: string = "";
440
+ }
441
+
442
+ class CFlags {
443
+ n: boolean = false;
444
+ s: boolean = false;
445
+ }
446
+ ```
447
+
448
+ #### 不支持 utility 类型 @uts110111125
449
+
450
+ 级别: 错误
451
+
452
+ 错误码: UTS110111125
453
+
454
+ 不支持 TypeScript 中的 Utility Types,如 Partial、Awaited、Required、Readonly、Pick、Omit、Exclude、Extract、NonNullable、Parameters、ConstructorParameters、ReturnType、InstanceType、NoInfer、ThisParameterType、OmitThisParameter、ThisType、Uppercase、Lowercase、Capitalize、Uncapitalize和 Record...
455
+
456
+ | 描述 | UTS-TS | UTS-ArkTS | UTS-Kotlin | UTS-Swift |
457
+ | :- | :- | :- | :- | :- |
458
+ | 适用版本 | 4.75 | 4.75 | 4.75 | 4.75 |
459
+ | 约束状态 | x | √ | √ | √ |
460
+
461
+ TypeScript写法:
462
+
463
+ ```ts
464
+ interface User {
465
+ id: number;
466
+ name: string;
467
+ email: string;
468
+ }
469
+
470
+ // Partial - 所有属性变为可选
471
+ type UserUpdate = Partial<User>;
472
+ let update: UserUpdate = { name: "John" };
473
+
474
+ // Readonly - 所有属性变为只读
475
+ type ReadUser = Readonly<User>;
476
+ let user: ReadUser = { id: 1, name: "John", email: "j@example.com" };
477
+ ```
478
+
479
+ UTS正确写法:
480
+
481
+ ```ts
482
+ // 使用 type 定义对象类型,而非 interface
483
+ type User = {
484
+ id: number;
485
+ name: string;
486
+ email: string;
487
+ };
488
+
489
+ // 手动定义等效类型
490
+ type UserUpdate = {
491
+ id?: number;
492
+ name?: string;
493
+ email?: string;
494
+ };
495
+ let update: UserUpdate = { name: "John" };
496
+
497
+ // 手动定义只读类型
498
+ type ReadUser = {
499
+ readonly id: number;
500
+ readonly name: string;
501
+ readonly email: string;
502
+ };
503
+ let user: ReadUser = { id: 1, name: "John", email: "j@example.com" };
504
+ ```
505
+
506
+ #### 不支持 as const 断言 @uts110111126
507
+
508
+ 级别: 错误
509
+
510
+ 错误码: UTS110111126
511
+
512
+ 不支持 as const 断言。
513
+
514
+ | 描述 | UTS-TS | UTS-ArkTS | UTS-Kotlin | UTS-Swift |
515
+ | :- | :- | :- | :- | :- |
516
+ | 适用版本 | 4.75 | 4.75 | 4.75 | 4.75 |
517
+ | 约束状态 | x | √ | √ | √ |
518
+
519
+ TypeScript写法:
520
+
521
+ ```ts
522
+ // 'hello'类型
523
+ let x = "hello" as const;
524
+
525
+ // 'readonly [10, 20]'类型
526
+ let y = [10, 20] as const;
527
+
528
+ // '{ readonly text: 'hello' }'类型
529
+ let z = { text: "hello" } as const;
530
+ ```
531
+
532
+ UTS正确写法:
533
+
534
+ ```ts
535
+ // 'string'类型
536
+ let x: string = "hello";
537
+
538
+ // 'number[]'类型
539
+ let y: number[] = [10, 20];
540
+
541
+ type Label = {
542
+ text: string;
543
+ };
544
+
545
+ // 'Label'类型
546
+ let z: Label = {
547
+ text: "hello",
548
+ };
549
+ ```
550
+
551
+ #### 不支持确定赋值断言 @uts110111127
552
+
553
+ 级别: 错误
554
+
555
+ 错误码: UTS110111127
556
+
557
+ 不支持确定赋值断言,例如:let v!: T。改为在声明变量的同时为变量赋值。
558
+
559
+ | 描述 | UTS-TS | UTS-ArkTS | UTS-Kotlin | UTS-Swift |
560
+ | :- | :- | :- | :- | :- |
561
+ | 适用版本 | 4.75 | 4.75 | 4.75 | 4.75 |
562
+ | 约束状态 | x | √ | √ | √ |
563
+
564
+ TypeScript写法:
565
+
566
+ ```ts
567
+ let x!: number; // 提示:在使用前将x初始化
568
+
569
+ initialize();
570
+
571
+ function initialize() {
572
+ x = 10;
573
+ }
574
+
575
+ console.log("x = " + x);
576
+ ```
577
+
578
+ UTS正确写法:
579
+
580
+ ```ts
581
+ function initialize(): number {
582
+ return 10;
583
+ }
584
+
585
+ let x: number = initialize();
586
+
587
+ console.log("x = " + x);
588
+ ```
589
+
590
+ #### 类型别名不能出现在局部作用域中 @uts100006
591
+
592
+ 级别: 错误
593
+
594
+ 错误码: UTS100006
595
+
596
+ 使用 type 关键字定义的类型别名(Type Alias),例如 type MyError = Error,不能在局部进行声明,只能在顶层作用域中。
597
+
598
+ | 描述 | UTS-TS | UTS-ArkTS | UTS-Kotlin | UTS-Swift |
599
+ | :- | :- | :- | :- | :- |
600
+ | 适用版本 | 4.75 | 4.75 | 4.75 | 4.75 |
601
+ | 约束状态 | x | x | √ | x |
602
+
603
+ TypeScript写法:
604
+
605
+ ```ts
606
+ function main() {
607
+ type MyError = Error
608
+ }
609
+ ```
610
+
611
+ UTS正确写法:
612
+
613
+ ```ts
614
+ type MyError = Error
615
+ function main() {
616
+ }
617
+ ```
618
+
619
+ ### 3. 类和对象相关
620
+
621
+ #### 不支持以#开头的私有字段 @uts110111128
622
+
623
+ 级别: 错误
624
+
625
+ 错误码: UTS110111128
626
+
627
+ 不支持使用 # 符号开头声明的私有字段。改用 private 关键字。
628
+
629
+ | 描述 | UTS-TS | UTS-ArkTS | UTS-Kotlin | UTS-Swift |
630
+ | :- | :- | :- | :- | :- |
631
+ | 适用版本 | 4.75 | 4.75 | 4.75 | 4.75 |
632
+ | 约束状态 | x | √ | √ | √ |
633
+
634
+ TypeScript写法:
635
+
636
+ ```ts
637
+ class C {
638
+ #foo: number = 42;
639
+ }
640
+ ```
641
+
642
+ UTS正确写法:
643
+
644
+ ```ts
645
+ class C {
646
+ private foo: number = 42;
647
+ }
648
+ ```
649
+
650
+ #### class 不支持通过索引访问字段 @uts110111129
651
+
652
+ 级别: 错误
653
+
654
+ 错误码: UTS110111129
655
+
656
+ class 不支持动态声明字段,不支持动态访问字段。只能访问已在类中声明或者继承可见的字段,访问其他字段将会造成编译时错误。 <br/> 使用点操作符访问 class 字段,例如(obj.field),不支持索引下标访问(obj\[field])。
657
+
658
+ | 描述 | UTS-TS | UTS-ArkTS | UTS-Kotlin | UTS-Swift |
659
+ | :- | :- | :- | :- | :- |
660
+ | 适用版本 | 4.75 | 4.75 | 4.75 | 4.75 |
661
+ | 约束状态 | x | √ | √ | √ |
662
+
663
+ TypeScript写法:
664
+
665
+ ```ts
666
+ class Point {
667
+ x: string = "";
668
+ y: string = "";
669
+ }
670
+ let p: Point = { x: "1", y: "2" };
671
+ console.log(p["x"]);
672
+
673
+ class Person {
674
+ name: string = "";
675
+ age: number = 0;
676
+ [key: string]: string | number;
677
+ }
678
+
679
+ let person: Person = {
680
+ name: "John",
681
+ age: 30,
682
+ email: "***@example.com",
683
+ phoneNumber: "18*********",
684
+ };
685
+ ```
686
+
687
+ UTS正确写法:
688
+
689
+ ```ts
690
+ class Point {
691
+ x: string = "";
692
+ y: string = "";
693
+ }
694
+ let p: Point = { x: "1", y: "2" };
695
+ console.log(p.x);
696
+
697
+ class Person {
698
+ name: string;
699
+ age: number;
700
+ email: string;
701
+ phoneNumber: string;
702
+
703
+ constructor(name: string, age: number, email: string, phoneNumber: string) {
704
+ this.name = name;
705
+ this.age = age;
706
+ this.email = email;
707
+ this.phoneNumber = phoneNumber;
708
+ }
709
+ }
710
+
711
+ let person = new Person("John", 30, "***@example.com", "18*********");
712
+ console.log(person["name"]); // 编译时错误
713
+ console.log(person.unknownProperty); // 编译时错误
714
+ ```
715
+
716
+ #### 不支持静态块 @uts110111130
717
+
718
+ 级别: 错误
719
+
720
+ 错误码: UTS110111130
721
+
722
+ 不同平台对类中静态块支持有差异。使用其他方式实现静态初始化,如构造函数中。
723
+
724
+ | 描述 | UTS-TS | UTS-ArkTS | UTS-Kotlin | UTS-Swift |
725
+ | :- | :- | :- | :- | :- |
726
+ | 适用版本 | 4.75 | 4.75 | 4.75 | 4.75 |
727
+ | 约束状态 | x | √ | √ | √ |
728
+
729
+ TypeScript写法:
730
+
731
+ ```ts
732
+ class MyClass {
733
+ static data: Map<string, string> = new Map<string, string>();
734
+
735
+ // 静态块初始化
736
+ static {
737
+ this.data.set("key1", "value1");
738
+ this.data.set("key2", "value2");
739
+ }
740
+ }
741
+ ```
742
+
743
+ UTS正确写法:
744
+
745
+ ```ts
746
+ class MyClass {
747
+ static data: Map<string, string> = MyClass.initData();
748
+
749
+ // 使用静态方法替代静态块
750
+ private static initData(): Map<string, string> {
751
+ let map: Map<string, string> = new Map<string, string>();
752
+ map.set("key1", "value1");
753
+ map.set("key2", "value2");
754
+ return map;
755
+ }
756
+ }
757
+ ```
758
+
759
+ #### class 不能被用作对象 @uts110111151
760
+
761
+ 级别: 错误
762
+
763
+ 错误码: UTS110111151
764
+
765
+ class 声明的是一个新的类型,不是一个值。因此,不支持将 class 用作对象 (例如将 class 赋值给一个对象)。
766
+
767
+ | 描述 | UTS-TS | UTS-ArkTS | UTS-Kotlin | UTS-Swift |
768
+ | :- | :- | :- | :- | :- |
769
+ | 适用版本 | 4.75 | 4.75 | 4.75 | 4.75 |
770
+ | 约束状态 | x | x | √ | √ |
771
+
772
+ TypeScript写法:
773
+
774
+ ```ts
775
+ class Person {
776
+ static type: string = "human";
777
+ }
778
+
779
+ // 在 TypeScript 中可以将类作为对象使用
780
+ console.log(Person.type);
781
+
782
+ // 可以将类赋值给变量
783
+ let PersonClass: typeof Person = Person;
784
+ let p: Person = new PersonClass();
785
+ ```
786
+
787
+ UTS正确写法:
788
+
789
+ ```ts
790
+ class Person {
791
+ static type: string = "human";
792
+ }
793
+
794
+ // 在 UTS 中可以访问静态成员
795
+ console.log(Person.type);
796
+
797
+ // 但不能将类本身赋值给变量
798
+ // let PersonClass = Person; // 错误
799
+
800
+ // 正确做法是使用工厂函数
801
+ function createPerson(): Person {
802
+ return new Person();
803
+ }
804
+ ```
805
+
806
+ #### 类继承时必须显示声明构造器 @uts110111131
807
+
808
+ 级别: 错误
809
+
810
+ 错误码: UTS110111131
811
+
812
+ 继承类时必须显式声明构造器。这是因为在不同目标平台 (Kotlin/Swift) 中,继承类时都需要显式调用父类构造器。
813
+
814
+ | 描述 | UTS-TS | UTS-ArkTS | UTS-Kotlin | UTS-Swift |
815
+ | :- | :- | :- | :- | :- |
816
+ | 适用版本 | 4.75 | 4.75 | 4.75 | 4.75 |
817
+ | 约束状态 | x | x | √ | x |
818
+
819
+ TypeScript写法:
820
+
821
+ ```ts
822
+ class Parent {
823
+ name: string = "";
824
+ }
825
+
826
+ class Child extends Parent {
827
+ // TypeScript 允许省略构造器
828
+ }
829
+ ```
830
+
831
+ UTS正确写法:
832
+
833
+ ```ts
834
+ class Parent {
835
+ name: string = "";
836
+ }
837
+
838
+ class Child extends Parent {
839
+ // 需要显式声明构造器
840
+ constructor() {
841
+ super();
842
+ }
843
+ }
844
+ ```
845
+
846
+ #### 类不允许 implements @uts110111132
847
+
848
+ 级别: 错误
849
+
850
+ 错误码: UTS110111132
851
+
852
+ 不允许类被 implements,只有接口可以被 implements。
853
+
854
+ | 描述 | UTS-TS | UTS-ArkTS | UTS-Kotlin | UTS-Swift |
855
+ | :- | :- | :- | :- | :- |
856
+ | 适用版本 | 4.75 | 4.75 | 4.75 | 4.75 |
857
+ | 约束状态 | x | √ | √ | √ |
858
+
859
+ TypeScript写法:
860
+
861
+ ```ts
862
+ class C {
863
+ foo() {}
864
+ }
865
+
866
+ class C1 implements C {
867
+ foo() {}
868
+ }
869
+ ```
870
+
871
+ UTS正确写法:
872
+
873
+ ```ts
874
+ interface C {
875
+ foo(): void;
876
+ }
877
+
878
+ class C1 implements C {
879
+ foo() {}
880
+ }
881
+ ```
882
+
883
+ #### 接口不能继承类 @uts110111133
884
+
885
+ 级别: 错误
886
+
887
+ 错误码: UTS110111133
888
+
889
+ 不支持接口继承类,接口只能继承接口。
890
+
891
+ | 描述 | UTS-TS | UTS-ArkTS | UTS-Kotlin | UTS-Swift |
892
+ | :- | :- | :- | :- | :- |
893
+ | 适用版本 | 4.75 | 4.75 | 4.75 | 4.75 |
894
+ | 约束状态 | x | √ | √ | √ |
895
+
896
+ TypeScript写法:
897
+
898
+ ```ts
899
+ class Control {
900
+ state: number = 0;
901
+ }
902
+
903
+ interface SelectableControl extends Control {
904
+ select(): void;
905
+ }
906
+ ```
907
+
908
+ UTS正确写法:
909
+
910
+ ```ts
911
+ interface Control {
912
+ state: number;
913
+ }
914
+
915
+ interface SelectableControl extends Control {
916
+ select(): void;
917
+ }
918
+ ```
919
+
920
+ #### 接口不能出现在局部作用域中 @uts110111166
921
+
922
+ 级别: 错误
923
+
924
+ 错误码: UTS110111166
925
+
926
+ 接口不能出现在局部作用域中
927
+
928
+ | 描述 | UTS-TS | UTS-ArkTS | UTS-Kotlin | UTS-Swift |
929
+ | :- | :- | :- | :- | :- |
930
+ | 适用版本 | 4.75 | 4.75 | 4.75 | 4.75 |
931
+ | 约束状态 | x | x | √ | x |
932
+
933
+ TypeScript写法:
934
+
935
+ ```ts
936
+ function test() {
937
+ interface Test {
938
+
939
+ }
940
+ }
941
+ ```
942
+
943
+ UTS正确写法:
944
+
945
+ ```ts
946
+ interface Test {
947
+
948
+ }
949
+ function test() {
950
+
951
+ }
952
+ ```
953
+
954
+ #### 不支持修改对象的方法 @uts110111134
955
+
956
+ 级别: 错误
957
+
958
+ 错误码: UTS110111134
959
+
960
+ 不支持修改对象的方法。在静态语言中,对象的布局是确定的。一个类的所有对象实例享有同一个方法。<br/> 如果需要为某个特定的对象增加方法,可以封装函数或者使用继承的机制。
961
+
962
+ | 描述 | UTS-TS | UTS-ArkTS | UTS-Kotlin | UTS-Swift |
963
+ | :- | :- | :- | :- | :- |
964
+ | 适用版本 | 4.75 | 4.75 | 4.75 | 4.75 |
965
+ | 约束状态 | x | √ | √ | √ |
966
+
967
+ TypeScript写法:
968
+
969
+ ```ts
970
+ class C {
971
+ foo() {
972
+ console.log("foo");
973
+ }
974
+ }
975
+
976
+ function bar() {
977
+ console.log("bar");
978
+ }
979
+
980
+ let c1 = new C();
981
+ let c2 = new C();
982
+ c2.foo = bar;
983
+
984
+ c1.foo(); // foo
985
+ c2.foo(); // bar
986
+ ```
987
+
988
+ UTS正确写法:
989
+
990
+ ```ts
991
+ class C {
992
+ foo() {
993
+ console.log("foo");
994
+ }
995
+ }
996
+
997
+ class Derived extends C {
998
+ constructor() {
999
+ super();
1000
+ }
1001
+ override foo() {
1002
+ console.log("Extra");
1003
+ super.foo();
1004
+ }
1005
+ }
1006
+
1007
+ let c1 = new C();
1008
+ let c2 = new C();
1009
+ c1.foo(); // foo
1010
+ c2.foo(); // foo
1011
+
1012
+ let c3 = new Derived();
1013
+ c3.foo(); // Extra foo
1014
+ ```
1015
+
1016
+ #### type、class 或 interface 的属性方法不支持定义泛型信息 @uts110111161
1017
+
1018
+ 级别: 错误
1019
+
1020
+ 错误码: UTS110111161
1021
+
1022
+ type、class 或 interface 的属性类型为方法时,不支持在属性方法上定义泛型信息。
1023
+
1024
+ | 描述 | UTS-TS | UTS-ArkTS | UTS-Kotlin | UTS-Swift |
1025
+ | :- | :- | :- | :- | :- |
1026
+ | 适用版本 | 4.75 | 4.75 | 4.75 | 4.75 |
1027
+ | 约束状态 | x | √ | √ | √ |
1028
+
1029
+ TypeScript写法:
1030
+
1031
+ ```ts
1032
+ type ApiService = {
1033
+ request: <T>(url: string) => Promise<T>; // 属性方法支持泛型
1034
+ };
1035
+
1036
+ interface DataHandler {
1037
+ process: <T>(data: T) => T; // 属性方法支持泛型
1038
+ }
1039
+
1040
+ class DataProcessor {
1041
+ handler: <T>(data: T) => T; // 属性方法支持泛型
1042
+ }
1043
+ ```
1044
+
1045
+ UTS正确写法:
1046
+
1047
+ ```ts
1048
+ // type
1049
+ // 方案1:指定具体类型
1050
+ type ApiService = {
1051
+ request: (url: string) => Promise<any>;
1052
+ };
1053
+ // 方案2:提升到type级别
1054
+ type ApiService<T> = {
1055
+ request: (url: string) => Promise<T>;
1056
+ };
1057
+
1058
+ // interface
1059
+ // 方案1:指定具体类型
1060
+ interface DataHandler {
1061
+ process: (data: any) => any;
1062
+ }
1063
+ // 方案2:提升到interface级别
1064
+ interface DataHandler<T> {
1065
+ process: (data: T) => T;
1066
+ }
1067
+ // 方案3:定义为方法
1068
+ interface DataHandler {
1069
+ process<T>(data: T): T;
1070
+ }
1071
+
1072
+ // class
1073
+ // 方案1:指定具体类型
1074
+ class DataProcessor {
1075
+ handler: (data: any) => any;
1076
+ }
1077
+ // 方案2:提升到class级别
1078
+ class DataProcessor<T> {
1079
+ handler: (data: T) => T;
1080
+ }
1081
+ // 方案3:定义为方法
1082
+ class DataProcessor {
1083
+ process<T>(data: T): T {
1084
+ return data;
1085
+ }
1086
+ }
1087
+ ```
1088
+
1089
+ #### 类不能作为值使用 @uts110111164
1090
+
1091
+ 级别: 错误
1092
+
1093
+ 错误码: UTS110111164
1094
+
1095
+ 类不能作为值使用
1096
+
1097
+ | 描述 | UTS-TS | UTS-ArkTS | UTS-Kotlin | UTS-Swift |
1098
+ | :- | :- | :- | :- | :- |
1099
+ | 适用版本 | 4.75 | 4.75 | 4.75 | 4.75 |
1100
+ | 约束状态 | x | x | √ | √ |
1101
+
1102
+ TypeScript写法:
1103
+
1104
+ ```ts
1105
+ type Msg = {
1106
+ obj: any | null
1107
+ }
1108
+
1109
+ class Abc {
1110
+ }
1111
+ let test : Msg = {
1112
+ obj: Abc
1113
+ }
1114
+
1115
+ test.obj = Abc;
1116
+
1117
+ console.log(test);
1118
+ ```
1119
+
1120
+ UTS正确写法:
1121
+
1122
+ ```ts
1123
+ type Msg = {
1124
+ obj: any | null
1125
+ }
1126
+
1127
+ class Abc {
1128
+
1129
+ }
1130
+ let test : Msg = {
1131
+ obj: null
1132
+ }
1133
+
1134
+ test.obj = new Abc();
1135
+
1136
+ console.log(test);
1137
+ ```
1138
+
1139
+ #### Enum成员初始化器仅支持数字或字符串 @uts120000003
1140
+
1141
+ 级别: 错误
1142
+
1143
+ 错误码: UTS120000003
1144
+
1145
+ Enum成员初始化器仅支持数字或字符串。
1146
+
1147
+ | 描述 | UTS-TS | UTS-ArkTS | UTS-Kotlin | UTS-Swift |
1148
+ | :- | :- | :- | :- | :- |
1149
+ | 适用版本 | 4.75 | 4.75 | 4.75 | 4.75 |
1150
+ | 约束状态 | x | x | x | √ |
1151
+
1152
+ TypeScript写法:
1153
+
1154
+ ```ts
1155
+ enum Test {
1156
+ A = 3 * 2
1157
+ }
1158
+ ```
1159
+
1160
+ UTS正确写法:
1161
+
1162
+ ```ts
1163
+ enum Test {
1164
+ A = 6
1165
+ }
1166
+ ```
1167
+
1168
+ #### Enum声明必须是顶级声明 @uts120000004
1169
+
1170
+ 级别: 错误
1171
+
1172
+ 错误码: UTS120000004
1173
+
1174
+ Enum声明必须是顶级声明。
1175
+
1176
+ | 描述 | UTS-TS | UTS-ArkTS | UTS-Kotlin | UTS-Swift |
1177
+ | :- | :- | :- | :- | :- |
1178
+ | 适用版本 | 4.75 | 4.75 | 4.75 | 4.75 |
1179
+ | 约束状态 | x | x | √ | x |
1180
+
1181
+ TypeScript写法:
1182
+
1183
+ ```ts
1184
+ function test() {
1185
+ enum Test {}
1186
+ }
1187
+ ```
1188
+
1189
+ UTS正确写法:
1190
+
1191
+ ```ts
1192
+ enum Test {}
1193
+ function test() {
1194
+ }
1195
+ ```
1196
+
1197
+ ### 4. 函数相关
1198
+
1199
+ #### 使用 class 而非具有 call signature 的类型 @uts110111135
1200
+
1201
+ 级别: 错误
1202
+
1203
+ 错误码: UTS110111135
1204
+
1205
+ 不支持对象类型中包含 call signature。
1206
+
1207
+ | 描述 | UTS-TS | UTS-ArkTS | UTS-Kotlin | UTS-Swift |
1208
+ | :- | :- | :- | :- | :- |
1209
+ | 适用版本 | 4.75 | 4.75 | 4.75 | 4.75 |
1210
+ | 约束状态 | x | √ | √ | √ |
1211
+
1212
+ TypeScript写法:
1213
+
1214
+ ```ts
1215
+ type DescribableFunction = {
1216
+ description: string;
1217
+ (someArg: string): string; // call signature
1218
+ };
1219
+
1220
+ function doSomething(fn: DescribableFunction): void {
1221
+ console.log(fn.description + " returned " + fn(""));
1222
+ }
1223
+ ```
1224
+
1225
+ UTS正确写法:
1226
+
1227
+ ```ts
1228
+ class DescribableFunction {
1229
+ description: string;
1230
+ public invoke(someArg: string): string {
1231
+ return someArg;
1232
+ }
1233
+ constructor() {
1234
+ this.description = "desc";
1235
+ }
1236
+ }
1237
+
1238
+ function doSomething(fn: DescribableFunction): void {
1239
+ console.log(fn.description + " returned " + fn.invoke(""));
1240
+ }
1241
+
1242
+ doSomething(new DescribableFunction());
1243
+ ```
1244
+
1245
+ #### 使用 class 而非具有构造签名的类型 @uts110111136
1246
+
1247
+ 级别: 错误
1248
+
1249
+ 错误码: UTS110111136
1250
+
1251
+ 不支持对象类型中的构造签名。改用类。
1252
+
1253
+ | 描述 | UTS-TS | UTS-ArkTS | UTS-Kotlin | UTS-Swift |
1254
+ | :- | :- | :- | :- | :- |
1255
+ | 适用版本 | 4.75 | 4.75 | 4.75 | 4.75 |
1256
+ | 约束状态 | x | √ | √ | √ |
1257
+
1258
+ TypeScript写法:
1259
+
1260
+ ```ts
1261
+ class SomeObject {}
1262
+
1263
+ type SomeConstructor = {
1264
+ new (s: string): SomeObject;
1265
+ };
1266
+
1267
+ function fn(ctor: SomeConstructor) {
1268
+ return new ctor("hello");
1269
+ }
1270
+ ```
1271
+
1272
+ UTS正确写法:
1273
+
1274
+ ```ts
1275
+ class SomeObject {
1276
+ public f: string;
1277
+ constructor(s: string) {
1278
+ this.f = s;
1279
+ }
1280
+ }
1281
+
1282
+ function fn(s: string): SomeObject {
1283
+ return new SomeObject(s);
1284
+ }
1285
+ ```
1286
+
1287
+ #### 不支持构造函数类型 @uts110111137
1288
+
1289
+ 级别: 错误
1290
+
1291
+ 错误码: UTS110111137
1292
+
1293
+ 不支持使用构造函数类型,改用 lambda 函数。
1294
+
1295
+ | 描述 | UTS-TS | UTS-ArkTS | UTS-Kotlin | UTS-Swift |
1296
+ | :- | :- | :- | :- | :- |
1297
+ | 适用版本 | 4.75 | 4.75 | 4.75 | 4.75 |
1298
+ | 约束状态 | x | √ | √ | √ |
1299
+
1300
+ TypeScript写法:
1301
+
1302
+ ```ts
1303
+ class Person {
1304
+ constructor(name: string, age: number) {}
1305
+ }
1306
+ type PersonCtor = new (name: string, age: number) => Person;
1307
+
1308
+ function createPerson(Ctor: PersonCtor, name: string, age: number): Person {
1309
+ return new Ctor(name, age);
1310
+ }
1311
+
1312
+ const person = createPerson(Person, "John", 30);
1313
+ ```
1314
+
1315
+ UTS正确写法:
1316
+
1317
+ ```ts
1318
+ class Person {
1319
+ constructor(name: string, age: number) {}
1320
+ }
1321
+ type PersonCtor = (n: string, a: number) => Person;
1322
+
1323
+ function createPerson(Ctor: PersonCtor, n: string, a: number): Person {
1324
+ return Ctor(n, a);
1325
+ }
1326
+
1327
+ let Impersonizer: PersonCtor = (n: string, a: number): Person => {
1328
+ return new Person(n, a);
1329
+ };
1330
+
1331
+ const person = createPerson(Impersonizer, "John", 30);
1332
+ ```
1333
+
1334
+ #### 函数声明不能作为值使用 @uts110111152
1335
+
1336
+ 级别: 错误
1337
+
1338
+ 错误码: UTS110111152
1339
+
1340
+ 在 UTS 中,通过 function 关键字声明的函数不能作为值传递。如果需要将函数作为值使用,请使用函数表达式。
1341
+
1342
+ | 描述 | UTS-TS | UTS-ArkTS | UTS-Kotlin | UTS-Swift |
1343
+ | :- | :- | :- | :- | :- |
1344
+ | 适用版本 | 4.75 | 4.75 | 4.75 | 4.75 |
1345
+ | 约束状态 | x | x | √ | x |
1346
+
1347
+ TypeScript写法:
1348
+
1349
+ ```ts
1350
+ // 允许将函数声明作为值使用
1351
+ function foo() {
1352
+ console.log("foo");
1353
+ }
1354
+
1355
+ setTimeout(foo, 1000); // 将函数作为参数传递
1356
+ ```
1357
+
1358
+ UTS正确写法:
1359
+
1360
+ ```ts
1361
+ // 使用函数表达式或箭头函数
1362
+ const foo = () => {
1363
+ console.log("foo");
1364
+ };
1365
+
1366
+ setTimeout(foo, 1000);
1367
+ ```
1368
+
1369
+ #### 不支持对函数声明属性 @uts110111138
1370
+
1371
+ 级别: 错误
1372
+
1373
+ 错误码: UTS110111138
1374
+
1375
+ 不支持对函数声明属性。
1376
+
1377
+ | 描述 | UTS-TS | UTS-ArkTS | UTS-Kotlin | UTS-Swift |
1378
+ | :- | :- | :- | :- | :- |
1379
+ | 适用版本 | 4.75 | 4.75 | 4.75 | 4.75 |
1380
+ | 约束状态 | x | √ | √ | √ |
1381
+
1382
+ TypeScript写法:
1383
+
1384
+ ```ts
1385
+ function greet(name: string): void {
1386
+ console.log("Hello, " + name);
1387
+ }
1388
+
1389
+ // 在 TypeScript 中可以给函数添加属性
1390
+ greet.count = 0;
1391
+ greet.increment = function (): void {
1392
+ this.count++;
1393
+ };
1394
+
1395
+ greet("John");
1396
+ greet.increment();
1397
+ console.log(greet.count); // 1
1398
+ ```
1399
+
1400
+ UTS正确写法:
1401
+
1402
+ ```ts
1403
+ // 在 UTS 中使用类替代函数属性
1404
+ class Greeter {
1405
+ count: number = 0;
1406
+
1407
+ greet(name: string): void {
1408
+ console.log("Hello, " + name);
1409
+ }
1410
+
1411
+ increment(): void {
1412
+ this.count++;
1413
+ }
1414
+ }
1415
+
1416
+ let g: Greeter = new Greeter();
1417
+ g.greet("John");
1418
+ g.increment();
1419
+ console.log(g.count); // 1
1420
+ ```
1421
+
1422
+ #### 不支持 Function.apply 和 Function.call @uts110111139
1423
+
1424
+ 级别: 错误
1425
+
1426
+ 错误码: UTS110111139
1427
+
1428
+ 不支持 Function.apply 和 Function.call。this 的语义仅限于在 class 中使用的传统 OOP 风格。
1429
+
1430
+ | 描述 | UTS-TS | UTS-ArkTS | UTS-Kotlin | UTS-Swift |
1431
+ | :- | :- | :- | :- | :- |
1432
+ | 适用版本 | 4.75 | 4.75 | 4.75 | 4.75 |
1433
+ | 约束状态 | x | √ | √ | √ |
1434
+
1435
+ TypeScript写法:
1436
+
1437
+ ```ts
1438
+ function greet(greeting: string): void {
1439
+ console.log(greeting + ", " + this.name);
1440
+ }
1441
+
1442
+ interface PersonType {
1443
+ name: string;
1444
+ }
1445
+
1446
+ let person: PersonType = { name: "John" };
1447
+
1448
+ // 使用 call 指定 this
1449
+ greet.call(person, "Hello");
1450
+
1451
+ // 使用 apply 指定 this 和参数数组
1452
+ greet.apply(person, ["Hi"]);
1453
+ ```
1454
+
1455
+ UTS正确写法:
1456
+
1457
+ ```ts
1458
+ // 在 UTS 中使用类和方法
1459
+ class Person {
1460
+ name: string;
1461
+
1462
+ constructor(name: string) {
1463
+ this.name = name;
1464
+ }
1465
+
1466
+ greet(greeting: string): void {
1467
+ console.log(greeting + ", " + this.name);
1468
+ }
1469
+ }
1470
+
1471
+ let person: Person = new Person("John");
1472
+ person.greet("Hello");
1473
+ ```
1474
+
1475
+ #### 不支持 Function.bind @uts110111139
1476
+
1477
+ 级别: 错误
1478
+
1479
+ 错误码: UTS110111139
1480
+
1481
+ 不支持 Function.bind;请通过类方法返回闭包或其他方式处理上下文。
1482
+
1483
+ | 描述 | UTS-TS | UTS-ArkTS | UTS-Kotlin | UTS-Swift |
1484
+ | :- | :- | :- | :- | :- |
1485
+ | 适用版本 | 4.75 | 4.75 | 4.75 | 4.75 |
1486
+ | 约束状态 | x | x | √ | √ |
1487
+
1488
+ TypeScript写法:
1489
+
1490
+ ```ts
1491
+ class Counter {
1492
+ count: number = 0;
1493
+
1494
+ increment(): void {
1495
+ this.count++;
1496
+ console.log(this.count);
1497
+ }
1498
+ }
1499
+
1500
+ let counter: Counter = new Counter();
1501
+
1502
+ // 使用 bind 绑定 this
1503
+ let inc: () => void = counter.increment.bind(counter);
1504
+ inc(); // 1
1505
+ inc(); // 2
1506
+ ```
1507
+
1508
+ UTS正确写法:
1509
+
1510
+ ```ts
1511
+ class Counter {
1512
+ count: number = 0;
1513
+
1514
+ increment(): void {
1515
+ this.count++;
1516
+ console.log(this.count);
1517
+ }
1518
+
1519
+ // 在 UTS 中使用方法返回闭包
1520
+ getIncrement(): () => void {
1521
+ return () => {
1522
+ this.count++;
1523
+ console.log(this.count);
1524
+ };
1525
+ }
1526
+ }
1527
+
1528
+ let counter: Counter = new Counter();
1529
+ let inc: () => void = counter.getIncrement();
1530
+ inc(); // 1
1531
+ inc(); // 2
1532
+ ```
1533
+
1534
+ #### 在函数表达式中不可以访问未声明的变量或函数(包括自身)@uts110111165
1535
+
1536
+ 级别: 错误
1537
+
1538
+ 错误码: UTS110111165
1539
+
1540
+ UTS 中不存在变量提升,在函数表达式中不可以访问未声明的变量或函数(包括自身)
1541
+
1542
+ | 描述 | UTS-TS | UTS-ArkTS | UTS-Kotlin | UTS-Swift |
1543
+ | :- | :- | :- | :- | :- |
1544
+ | 适用版本 | 4.75 | 4.75 | 4.75 | 4.75 |
1545
+ | 约束状态 | x | x | √ | √ |
1546
+
1547
+ TypeScript写法:
1548
+
1549
+ ```ts
1550
+ const fn = function () {
1551
+ console.log(fn)
1552
+ }
1553
+ fn()
1554
+ ```
1555
+
1556
+ UTS正确写法:
1557
+
1558
+ ```ts
1559
+ let fn: (() => void) | null = null
1560
+ fn = function () {
1561
+ console.log(fn) // 此时 fn 可以正常访问
1562
+ fn!() // 如果需要调用就必须要加`!`
1563
+ }
1564
+ fn()
1565
+ ```
1566
+
1567
+ #### 不支持函数分配给接口 @uts120000000
1568
+
1569
+ 级别: 错误
1570
+
1571
+ 错误码: UTS120000000
1572
+
1573
+ 无法将函数分配给接口。
1574
+
1575
+ | 描述 | UTS-TS | UTS-ArkTS | UTS-Kotlin | UTS-Swift |
1576
+ | :- | :- | :- | :- | :- |
1577
+ | 适用版本 | 4.75 | 4.75 | 4.75 | 4.75 |
1578
+ | 约束状态 | x | x | √ | √ |
1579
+
1580
+ TypeScript写法:
1581
+
1582
+ ```ts
1583
+ interface MyFunction {
1584
+ }
1585
+ const myFunction1: MyFunction = () => { };
1586
+ ```
1587
+
1588
+ UTS正确写法:
1589
+
1590
+ ```ts
1591
+
1592
+ const MyFunction = () => { };
1593
+ ```
1594
+
1595
+ ### 5. 模块和命名空间
1596
+
1597
+ #### 不支持命名空间 @uts110111140
1598
+
1599
+ 级别: 错误
1600
+
1601
+ 错误码: UTS110111140
1602
+
1603
+ 不支持将命名空间用作对象,可以使用类或模块。
1604
+
1605
+ | 描述 | UTS-TS | UTS-ArkTS | UTS-Kotlin | UTS-Swift |
1606
+ | :- | :- | :- | :- | :- |
1607
+ | 适用版本 | 4.75 | 4.75 | 4.75 | 4.75 |
1608
+ | 约束状态 | x | x | √ | √ |
1609
+
1610
+ TypeScript写法:
1611
+
1612
+ ```ts
1613
+ namespace MyNamespace {
1614
+ export let x: number;
1615
+ }
1616
+ ```
1617
+
1618
+ UTS正确写法:
1619
+
1620
+ ```ts
1621
+ // UTS 不支持命名空间,使用模块替代
1622
+ // file: utils.uts
1623
+ export let x: number = 10;
1624
+
1625
+ // 在其他文件中导入
1626
+ import { x } from "./utils.uts";
1627
+ console.log(x);
1628
+ ```
1629
+
1630
+ #### 不支持 require 和 import 赋值表达式 @uts110111141
1631
+
1632
+ 级别: 错误
1633
+
1634
+ 错误码: UTS110111141
1635
+
1636
+ 不支持通过 require 导入,也不支持 import 赋值表达式,改用 import。
1637
+
1638
+ | 描述 | UTS-TS | UTS-ArkTS | UTS-Kotlin | UTS-Swift |
1639
+ | :- | :- | :- | :- | :- |
1640
+ | 适用版本 | 4.75 | 4.75 | 4.75 | 4.75 |
1641
+ | 约束状态 | x | √ | √ | √ |
1642
+
1643
+ TypeScript写法:
1644
+
1645
+ ```ts
1646
+ import m = require("mod");
1647
+ ```
1648
+
1649
+ UTS正确写法:
1650
+
1651
+ ```ts
1652
+ import * as m from "mod";
1653
+ ```
1654
+
1655
+ #### 不支持 export = ...语法 @uts110111142
1656
+
1657
+ 级别: 错误
1658
+
1659
+ 错误码: UTS110111142
1660
+
1661
+ 不支持 export = ...语法,改用常规的 export 或 import。
1662
+
1663
+ | 描述 | UTS-TS | UTS-ArkTS | UTS-Kotlin | UTS-Swift |
1664
+ | :- | :- | :- | :- | :- |
1665
+ | 适用版本 | 4.75 | 4.75 | 4.75 | 4.75 |
1666
+ | 约束状态 | x | √ | √ | √ |
1667
+
1668
+ TypeScript写法:
1669
+
1670
+ ```ts
1671
+ // module1
1672
+ export = Point;
1673
+
1674
+ class Point {
1675
+ constructor(x: number, y: number) {}
1676
+ static origin = new Point(0, 0);
1677
+ }
1678
+
1679
+ // module2
1680
+ import Pt = require("module1");
1681
+
1682
+ let p = Pt.Point.origin;
1683
+ ```
1684
+
1685
+ UTS正确写法:
1686
+
1687
+ ```ts
1688
+ // module1
1689
+ export class Point {
1690
+ constructor(x: number, y: number) {}
1691
+ static origin = new Point(0, 0);
1692
+ }
1693
+
1694
+ // module2
1695
+ import * as Pt from "module1";
1696
+
1697
+ let p = Pt.Point.origin;
1698
+ ```
1699
+
1700
+ ### 6. 类型检查和转换
1701
+
1702
+ #### 使用 instanceof 和 as 进行类型保护 @uts110111143
1703
+
1704
+ 级别: 错误
1705
+
1706
+ 错误码: UTS110111143
1707
+
1708
+ 不支持 is 运算符,必须用 instanceof 运算符替代。在使用之前,必须使用 as 运算符将对象转换为需要的类型。
1709
+
1710
+ | 描述 | UTS-TS | UTS-ArkTS | UTS-Kotlin | UTS-Swift |
1711
+ | :- | :- | :- | :- | :- |
1712
+ | 适用版本 | 4.75 | 4.75 | 4.75 | 4.75 |
1713
+ | 约束状态 | x | √ | √ | √ |
1714
+
1715
+ TypeScript写法:
1716
+
1717
+ ```ts
1718
+ class Foo {
1719
+ foo: string = "";
1720
+ common: string = "";
1721
+ }
1722
+
1723
+ class Bar {
1724
+ bar: string = "";
1725
+ common: string = "";
1726
+ }
1727
+
1728
+ function isFoo(arg: any): arg is Foo {
1729
+ return arg.foo !== undefined;
1730
+ }
1731
+
1732
+ function doStuff(arg: Foo | Bar) {
1733
+ if (isFoo(arg)) {
1734
+ console.log(arg.foo); // OK
1735
+ console.log(arg.bar); // 编译时错误
1736
+ } else {
1737
+ console.log(arg.foo); // 编译时错误
1738
+ console.log(arg.bar); // OK
1739
+ }
1740
+ }
1741
+
1742
+ doStuff({ foo: 123, common: "123" });
1743
+ doStuff({ bar: 123, common: "123" });
1744
+ ```
1745
+
1746
+ UTS正确写法:
1747
+
1748
+ ```ts
1749
+ class Foo {
1750
+ foo: string = "";
1751
+ common: string = "";
1752
+ }
1753
+
1754
+ class Bar {
1755
+ bar: string = "";
1756
+ common: string = "";
1757
+ }
1758
+
1759
+ function isFoo(arg: any): boolean {
1760
+ return arg instanceof Foo;
1761
+ }
1762
+
1763
+ function doStuff(arg: any): void {
1764
+ if (isFoo(arg)) {
1765
+ let fooArg = arg as Foo;
1766
+ console.log(fooArg.foo); // OK
1767
+ console.log(arg.bar); // 编译时错误
1768
+ } else {
1769
+ let barArg = arg as Bar;
1770
+ console.log(arg.foo); // 编译时错误
1771
+ console.log(barArg.bar); // OK
1772
+ }
1773
+ }
1774
+
1775
+ function main(): void {
1776
+ doStuff(new Foo());
1777
+ doStuff(new Bar());
1778
+ }
1779
+ ```
1780
+
1781
+ #### 类型转换仅支持 as T 语法 @uts110111153
1782
+
1783
+ 级别: 错误
1784
+
1785
+ 错误码: UTS110111153
1786
+
1787
+ as 关键字是类型转换的唯一语法,错误的类型转换会导致编译时错误或者运行时抛出异常。不支持使用\<type>语法进行类型转换。
1788
+
1789
+ | 描述 | UTS-TS | UTS-ArkTS | UTS-Kotlin | UTS-Swift |
1790
+ | :- | :- | :- | :- | :- |
1791
+ | 适用版本 | 4.75 | 4.75 | 4.75 | 4.75 |
1792
+ | 约束状态 | x | √ | √ | √ |
1793
+
1794
+ TypeScript写法:
1795
+
1796
+ ```ts
1797
+ class Shape {}
1798
+ class Circle extends Shape {
1799
+ x: number = 5;
1800
+ }
1801
+ class Square extends Shape {
1802
+ y: string = "a";
1803
+ }
1804
+
1805
+ function createShape(): Shape {
1806
+ return new Circle();
1807
+ }
1808
+
1809
+ let c1 = <Circle>createShape();
1810
+
1811
+ let c2 = createShape() as Circle;
1812
+
1813
+ // 如果转换错误,不会产生编译时或运行时报错
1814
+ let c3 = createShape() as Square;
1815
+ console.log(c3.y); // undefined
1816
+
1817
+ // 在TS中,由于`as`关键字不会在运行时生效,所以`instanceof`的左操作数不会在运行时被装箱成引用类型
1818
+ let e1 = (5.0 as Number) instanceof Number; // false
1819
+
1820
+ // 创建Number对象,获得预期结果:
1821
+ let e2 = new Number(5.0) instanceof Number; // true
1822
+ ```
1823
+
1824
+ UTS正确写法:
1825
+
1826
+ ```ts
1827
+ class Shape {}
1828
+ class Circle extends Shape {
1829
+ x: number = 5;
1830
+ constructor() {
1831
+ super();
1832
+ }
1833
+ }
1834
+ class Square extends Shape {
1835
+ y: string = "a";
1836
+ constructor() {
1837
+ super();
1838
+ }
1839
+ }
1840
+
1841
+ function createShape(): Shape {
1842
+ return new Circle();
1843
+ }
1844
+
1845
+ let c2 = createShape() as Circle;
1846
+
1847
+ // 运行时抛出ClassCastException异常:
1848
+ let c3 = createShape() as Square;
1849
+ ```
1850
+
1851
+ ### 7. 特殊语言特性
1852
+
1853
+ #### 不支持 Symbol() @uts110111154
1854
+
1855
+ 级别: 错误
1856
+
1857
+ 错误码: UTS110111154
1858
+
1859
+ ts 中的 Symbol() 用于在运行时生成唯一的属性名称。由于该 API 的常见使用场景在静态类型语言中没有意义。
1860
+
1861
+ | 描述 | UTS-TS | UTS-ArkTS | UTS-Kotlin | UTS-Swift |
1862
+ | :- | :- | :- | :- | :- |
1863
+ | 适用版本 | 4.75 | 4.75 | 4.75 | 4.75 |
1864
+ | 约束状态 | x | √ | √ | √ |
1865
+
1866
+ TypeScript写法:
1867
+
1868
+ ```ts
1869
+ // Symbol 用于创建唯一标识符
1870
+ let sym1: symbol = Symbol("key");
1871
+ let sym2: symbol = Symbol("key");
1872
+ console.log(sym1 == sym2); // false
1873
+
1874
+ // 作为对象属性
1875
+ let obj: any = {};
1876
+ obj[sym1] = "value1";
1877
+ console.log(obj[sym1]); // "value1"
1878
+ ```
1879
+
1880
+ UTS正确写法:
1881
+
1882
+ ```ts
1883
+ // 使用具体的唯一字符串字面量定义类型
1884
+ type MyObj = {
1885
+ key1: string;
1886
+ key2: string;
1887
+ };
1888
+
1889
+ let obj: MyObj = {
1890
+ key1: "value1",
1891
+ key2: "value2",
1892
+ };
1893
+ console.log(obj.key1); // "value1"
1894
+ ```
1895
+
1896
+ #### 不支持 index signature @uts110111144
1897
+
1898
+ 级别: 错误
1899
+
1900
+ 错误码: UTS110111144
1901
+
1902
+ 不支持 index signature,改用数组或其他集合类型。
1903
+
1904
+ | 描述 | UTS-TS | UTS-ArkTS | UTS-Kotlin | UTS-Swift |
1905
+ | :- | :- | :- | :- | :- |
1906
+ | 适用版本 | 4.75 | 4.75 | 4.75 | 4.75 |
1907
+ | 约束状态 | x | √ | √ | √ |
1908
+
1909
+ TypeScript写法:
1910
+
1911
+ ```ts
1912
+ // 带index signature的接口:
1913
+ interface StringArray {
1914
+ [index: number]: string;
1915
+ }
1916
+
1917
+ function getStringArray(): StringArray {
1918
+ return ["a", "b", "c"];
1919
+ }
1920
+
1921
+ const myArray: StringArray = getStringArray();
1922
+ const secondItem = myArray[1];
1923
+ ```
1924
+
1925
+ UTS正确写法:
1926
+
1927
+ ```ts
1928
+ class X {
1929
+ public f: string[] = ["a", "b", "c"];
1930
+ }
1931
+
1932
+ let myArray: X = new X();
1933
+ const secondItem = myArray.f[1];
1934
+ ```
1935
+
1936
+ #### 不支持声明合并 @uts110111145
1937
+
1938
+ 级别: 错误
1939
+
1940
+ 错误码: UTS110111145
1941
+
1942
+ 不支持类、接口的声明合并。
1943
+
1944
+ | 描述 | UTS-TS | UTS-ArkTS | UTS-Kotlin | UTS-Swift |
1945
+ | :- | :- | :- | :- | :- |
1946
+ | 适用版本 | 4.75 | 4.75 | 4.75 | 4.75 |
1947
+ | 约束状态 | x | √ | √ | √ |
1948
+
1949
+ TypeScript写法:
1950
+
1951
+ ```ts
1952
+ interface Document {
1953
+ createElement(tagName: any): Element;
1954
+ }
1955
+
1956
+ interface Document {
1957
+ createElement(tagName: string): HTMLElement;
1958
+ }
1959
+
1960
+ interface Document {
1961
+ createElement(tagName: number): HTMLDivElement;
1962
+ createElement(tagName: boolean): HTMLSpanElement;
1963
+ createElement(tagName: string, value: number): HTMLCanvasElement;
1964
+ }
1965
+ ```
1966
+
1967
+ UTS正确写法:
1968
+
1969
+ ```ts
1970
+ interface Document {
1971
+ createElement(tagName: number): HTMLDivElement;
1972
+ createElement(tagName: boolean): HTMLSpanElement;
1973
+ createElement(tagName: string, value: number): HTMLCanvasElement;
1974
+ createElement(tagName: string): HTMLElement;
1975
+ createElement(tagName: Object): Element;
1976
+ }
1977
+ ```
1978
+
1979
+ #### 不支持生成器函数 @uts110111146
1980
+
1981
+ 级别: 错误
1982
+
1983
+ 错误码: UTS110111146
1984
+
1985
+ 不支持生成器函数,使用 async 或 await 机制进行并行任务处理。
1986
+
1987
+ | 描述 | UTS-TS | UTS-ArkTS | UTS-Kotlin | UTS-Swift |
1988
+ | :- | :- | :- | :- | :- |
1989
+ | 适用版本 | 4.75 | 4.75 | 4.75 | 4.75 |
1990
+ | 约束状态 | x | √ | √ | √ |
1991
+
1992
+ TypeScript写法:
1993
+
1994
+ ```ts
1995
+ function* counter(start: number, end: number) {
1996
+ for (let i = start; i <= end; i++) {
1997
+ yield i;
1998
+ }
1999
+ }
2000
+
2001
+ for (let num of counter(1, 5)) {
2002
+ console.log(num);
2003
+ }
2004
+ ```
2005
+
2006
+ UTS正确写法:
2007
+
2008
+ ```ts
2009
+ async function complexNumberProcessing(num: number): Promise<number> {
2010
+ // ...
2011
+ return num;
2012
+ }
2013
+
2014
+ async function foo() {
2015
+ for (let i = 1; i <= 5; i++) {
2016
+ await complexNumberProcessing(i);
2017
+ }
2018
+ }
2019
+
2020
+ foo();
2021
+ ```
2022
+
2023
+ #### 不支持 JSX 表达式 @uts110111155
2024
+
2025
+ 级别: 错误
2026
+
2027
+ 错误码: UTS110111155
2028
+
2029
+ 不支持使用 JSX。
2030
+
2031
+ | 描述 | UTS-TS | UTS-ArkTS | UTS-Kotlin | UTS-Swift |
2032
+ | :- | :- | :- | :- | :- |
2033
+ | 适用版本 | 4.75 | 4.75 | 4.75 | 4.75 |
2034
+ | 约束状态 | x | √ | √ | √ |
2035
+
2036
+ TypeScript写法:
2037
+
2038
+ ```ts
2039
+ // React TSX 示例
2040
+ function Welcome(props: { name: string }) {
2041
+ return <h1>Hello, {props.name}</h1>;
2042
+ }
2043
+ ```
2044
+
2045
+ UTS正确写法:
2046
+
2047
+ ```vue
2048
+ <template>
2049
+ <text>Hello, {{ name }}</text>
2050
+ </template>
2051
+
2052
+ ```
2053
+
2054
+ #### 不支持 with 语句 @uts110111156
2055
+
2056
+ 级别: 错误
2057
+
2058
+ 错误码: UTS110111156
2059
+
2060
+ 不支持 with 语句,使用其他语法来表示相同的语义。
2061
+
2062
+ | 描述 | UTS-TS | UTS-ArkTS | UTS-Kotlin | UTS-Swift |
2063
+ | :- | :- | :- | :- | :- |
2064
+ | 适用版本 | 4.75 | 4.75 | 4.75 | 4.75 |
2065
+ | 约束状态 | x | √ | √ | √ |
2066
+
2067
+ TypeScript写法:
2068
+
2069
+ ```ts
2070
+ with (Math) {
2071
+ // 编译时错误, 但是仍能生成JavaScript代码
2072
+ let r: number = 42;
2073
+ let area: number = PI * r * r;
2074
+ }
2075
+ ```
2076
+
2077
+ UTS正确写法:
2078
+
2079
+ ```ts
2080
+ let r: number = 42;
2081
+ let area: number = Math.PI * r * r;
2082
+ ```
2083
+
2084
+ #### 不支持 globalThis @uts110111147
2085
+
2086
+ 级别: 错误
2087
+
2088
+ 错误码: UTS110111147
2089
+
2090
+ 不支持全局作用域和 globalThis。
2091
+
2092
+ | 描述 | UTS-TS | UTS-ArkTS | UTS-Kotlin | UTS-Swift |
2093
+ | :- | :- | :- | :- | :- |
2094
+ | 适用版本 | 4.75 | 4.75 | 4.75 | 4.75 |
2095
+ | 约束状态 | x | √ | √ | √ |
2096
+
2097
+ TypeScript写法:
2098
+
2099
+ ```ts
2100
+ // 全局文件中
2101
+ var abc = 100;
2102
+
2103
+ // 从上面引用'abc'
2104
+ let x = globalThis.abc;
2105
+ ```
2106
+
2107
+ UTS正确写法:
2108
+
2109
+ ```ts
2110
+ // file1
2111
+ export let abc: number = 100;
2112
+
2113
+ // file2
2114
+ import * as M from "file1";
2115
+
2116
+ let x = M.abc;
2117
+ ```
2118
+
2119
+ ### 8. 运算符和表达式
2120
+
2121
+ #### 一元运算符+、-和~仅适用于数值类型 @uts110111148
2122
+
2123
+ 级别: 错误
2124
+
2125
+ 错误码: UTS110111148
2126
+
2127
+ 仅允许一元运算符用于数值类型,否则会发生编译时错误。不支持隐式将字符串转换成数值,必须进行显式转换。
2128
+
2129
+ | 描述 | UTS-TS | UTS-ArkTS | UTS-Kotlin | UTS-Swift |
2130
+ | :- | :- | :- | :- | :- |
2131
+ | 适用版本 | 4.75 | 4.75 | 4.75 | 4.75 |
2132
+ | 约束状态 | x | √ | √ | √ |
2133
+
2134
+ TypeScript写法:
2135
+
2136
+ ```ts
2137
+ let a = +5; // 5(number类型)
2138
+ let b = +"5"; // 5(number类型)
2139
+ let c = -5; // -5(number类型)
2140
+ let d = -"5"; // -5(number类型)
2141
+ let e = ~5; // -6(number类型)
2142
+ let f = ~"5"; // -6(number类型)
2143
+ let g = +"string"; // NaN(number类型)
2144
+
2145
+ function returnTen(): string {
2146
+ return "-10";
2147
+ }
2148
+
2149
+ function returnString(): string {
2150
+ return "string";
2151
+ }
2152
+
2153
+ let x = +returnTen(); // -10(number类型)
2154
+ let y = +returnString(); // NaN
2155
+ ```
2156
+
2157
+ UTS正确写法:
2158
+
2159
+ ```ts
2160
+ let a = +5; // 5(number类型)
2161
+ let b = +"5"; // 编译时错误
2162
+ let c = -5; // -5(number类型)
2163
+ let d = -"5"; // 编译时错误
2164
+ let e = ~5; // -6(number类型)
2165
+ let f = ~"5"; // 编译时错误
2166
+ let g = +"string"; // 编译时错误
2167
+
2168
+ function returnTen(): string {
2169
+ return "-10";
2170
+ }
2171
+
2172
+ function returnString(): string {
2173
+ return "string";
2174
+ }
2175
+
2176
+ let x = +returnTen(); // 编译时错误
2177
+ let y = +returnString(); // 编译时错误
2178
+ ```
2179
+
2180
+ #### 不支持赋值语句返回值 @uts110111160
2181
+
2182
+ 级别: 错误
2183
+
2184
+ 错误码: UTS110111160
2185
+
2186
+ 在 uts 中,赋值语句不会返回值,不能将赋值操作用在表达式中。
2187
+
2188
+ | 描述 | UTS-TS | UTS-ArkTS | UTS-Kotlin | UTS-Swift |
2189
+ | :- | :- | :- | :- | :- |
2190
+ | 适用版本 | 4.75 | 4.75 | 4.75 | 4.75 |
2191
+ | 约束状态 | x | √ | √ | √ |
2192
+
2193
+ TypeScript写法:
2194
+
2195
+ ```ts
2196
+ let x, y;
2197
+ y = x = 5; // x和y都被赋值为5
2198
+
2199
+ // 在条件中使用赋值
2200
+ let arr = [1, 2, 3];
2201
+ let item;
2202
+ while ((item = arr.pop())) {
2203
+ console.log(item);
2204
+ }
2205
+
2206
+ // 在正则匹配中常用的模式
2207
+ let regex = /\w+/g;
2208
+ let text = "hello world";
2209
+ let match;
2210
+ while ((match = regex.exec(text))) {
2211
+ console.log(match[0]);
2212
+ }
2213
+ ```
2214
+
2215
+ UTS正确写法:
2216
+
2217
+ ```ts
2218
+ let x = 5;
2219
+ let y = x; // 必须分开赋值
2220
+
2221
+ // 正确的循环写法
2222
+ let arr = [1, 2, 3];
2223
+ let item = arr.pop();
2224
+ while (item != null) {
2225
+ console.log(item);
2226
+ item = arr.pop();
2227
+ }
2228
+
2229
+ // 正确的正则匹配写法
2230
+ let regex = /\w+/g;
2231
+ let text = "hello world";
2232
+ let match = regex.exec(text);
2233
+ while (match != null) {
2234
+ console.log(match[0]);
2235
+ match = regex.exec(text);
2236
+ }
2237
+ ```
2238
+
2239
+ #### 不支持 delete 运算符 @uts110111149
2240
+
2241
+ 级别: 错误
2242
+
2243
+ 错误码: UTS110111149
2244
+
2245
+ 在 uts 中,对象布局在编译时就确定了,且不能在运行时被更改。因此,删除属性的操作没有意义。
2246
+
2247
+ | 描述 | UTS-TS | UTS-ArkTS | UTS-Kotlin | UTS-Swift |
2248
+ | :- | :- | :- | :- | :- |
2249
+ | 适用版本 | 4.75 | 4.75 | 4.75 | 4.75 |
2250
+ | 约束状态 | x | √ | √ | √ |
2251
+
2252
+ TypeScript写法:
2253
+
2254
+ ```ts
2255
+ interface Person {
2256
+ name: string;
2257
+ age?: number;
2258
+ }
2259
+
2260
+ let person: Person = { name: "John", age: 30 };
2261
+
2262
+ // 删除可选属性
2263
+ delete person.age;
2264
+ console.log(person.age); // undefined
2265
+
2266
+ // 删除对象属性
2267
+ let obj: any = { x: 1, y: 2 };
2268
+ delete obj.x;
2269
+ console.log(obj.x); // undefined
2270
+ ```
2271
+
2272
+ UTS正确写法:
2273
+
2274
+ ```ts
2275
+ type Person = {
2276
+ name: string;
2277
+ age: number | null;
2278
+ };
2279
+
2280
+ let person: Person = { name: "John", age: 30 };
2281
+
2282
+ // 使用 null 替代删除
2283
+ person.age = null;
2284
+ console.log(person.age); // null
2285
+
2286
+ // 使用新对象替代删除属性
2287
+ type Point = { x: number; y: number };
2288
+ let obj: Point = { x: 1, y: 2 };
2289
+ type PartialPoint = { y: number };
2290
+ let newObj: PartialPoint = { y: obj.y };
2291
+ console.log(newObj.y); // 2
2292
+ ```
2293
+
2294
+ #### 逗号运算符仅用在 for 循环语句中 @uts110111157
2295
+
2296
+ 级别: 错误
2297
+
2298
+ 错误码: UTS110111157
2299
+
2300
+ 在 uts 中,逗号运算符仅适用于 for 循环语句中。注意与声明变量、函数参数传递时的逗号分隔符不同。
2301
+
2302
+ | 描述 | UTS-TS | UTS-ArkTS | UTS-Kotlin | UTS-Swift |
2303
+ | :- | :- | :- | :- | :- |
2304
+ | 适用版本 | 4.75 | 4.75 | 4.75 | 4.75 |
2305
+ | 约束状态 | x | √ | √ | √ |
2306
+
2307
+ TypeScript写法:
2308
+
2309
+ ```ts
2310
+ for (let i = 0, j = 0; i < 10; ++i, j += 2) {
2311
+ // ...
2312
+ }
2313
+
2314
+ let x = 0;
2315
+ x = (++x, x++); // 1
2316
+ ```
2317
+
2318
+ UTS正确写法:
2319
+
2320
+ ```ts
2321
+ for (let i = 0, j = 0; i < 10; ++i, j += 2) {
2322
+ // ...
2323
+ }
2324
+ // 通过语句表示执行顺序,而非逗号运算符
2325
+ let x = 0;
2326
+ ++x;
2327
+ x = x++;
2328
+ ```
2329
+
2330
+ #### 限制 throw 语句中表达式的类型 @uts110111158
2331
+
2332
+ 级别: 错误
2333
+
2334
+ 错误码: UTS110111158
2335
+
2336
+ 只支持抛出 Error 类或其派生类的实例。禁止抛出其他类型(例如 number 或 string)的数据。
2337
+
2338
+ | 描述 | UTS-TS | UTS-ArkTS | UTS-Kotlin | UTS-Swift |
2339
+ | :- | :- | :- | :- | :- |
2340
+ | 适用版本 | 4.75 | 4.75 | 4.75 | 4.75 |
2341
+ | 约束状态 | x | √ | √ | √ |
2342
+
2343
+ TypeScript写法:
2344
+
2345
+ ```ts
2346
+ throw 4;
2347
+ throw "";
2348
+ throw new Error();
2349
+ ```
2350
+
2351
+ UTS正确写法:
2352
+
2353
+ ```ts
2354
+ throw new Error();
2355
+ ```
2356
+
2357
+ #### 数组越界访问 @uts210111100
2358
+
2359
+ 级别: 错误
2360
+
2361
+ 错误码: UTS210111100
2362
+
2363
+ 在 uts 中,数组越界访问在不同平台表现有差异:<br/> - 编译为 Kotlin、Swift 时数组越界会抛出运行时异常。 <br/> - 编译为 JavaScript、ArkTS 时数组越界依旧返回的是 undefined。
2364
+
2365
+ | 描述 | UTS-TS | UTS-ArkTS | UTS-Kotlin | UTS-Swift |
2366
+ | :- | :- | :- | :- | :- |
2367
+ | 适用版本 | 4.75 | 4.75 | 4.75 | 4.75 |
2368
+ | 约束状态 | x | x | √ | √ |
2369
+
2370
+ TypeScript写法:
2371
+
2372
+ ```ts
2373
+ let arr: number[] = [1, 2, 3];
2374
+
2375
+ // TypeScript/JavaScript 中越界访问返回 undefined
2376
+ console.log(arr[5]); // undefined
2377
+ console.log(arr[-1]); // undefined
2378
+ ```
2379
+
2380
+ UTS正确写法:
2381
+
2382
+ ```ts
2383
+ const arr: number[] = [1, 2, 3];
2384
+
2385
+ // Kotlin、Swift 中越界访问会抛出运行时异常
2386
+ console.log(arr[5]); // 抛出 IndexOutOfBoundsException
2387
+ console.log(arr[-1]); // 抛出 IndexOutOfBoundsException
2388
+
2389
+ // 正确的做法:在访问前检查边界
2390
+ let index = 5;
2391
+ if (index >= 0 && index < arr.length) {
2392
+ console.log(arr[index]);
2393
+ } else {
2394
+ console.log("索引越界");
2395
+ }
2396
+ ```
2397
+
2398
+ ### 9. 原型和对象操作
2399
+
2400
+ #### 不支持在原型上赋值 @uts110111159
2401
+
2402
+ 级别: 错误
2403
+
2404
+ 错误码: UTS110111159
2405
+
2406
+ uts 没有原型的概念,因此不支持在原型上赋值。此特性不符合静态类型的原则。
2407
+
2408
+ | 描述 | UTS-TS | UTS-ArkTS | UTS-Kotlin | UTS-Swift |
2409
+ | :- | :- | :- | :- | :- |
2410
+ | 适用版本 | 4.75 | 4.75 | 4.75 | 4.75 |
2411
+ | 约束状态 | x | √ | √ | √ |
2412
+
2413
+ TypeScript写法:
2414
+
2415
+ ```ts
2416
+ let C = function (p) {
2417
+ this.p = p; // 只有在开启noImplicitThis选项时会产生编译时错误
2418
+ };
2419
+
2420
+ C.prototype = {
2421
+ m() {
2422
+ console.log(this.p);
2423
+ },
2424
+ };
2425
+
2426
+ C.prototype.q = function (r: string) {
2427
+ return this.p == r;
2428
+ };
2429
+ ```
2430
+
2431
+ UTS正确写法:
2432
+
2433
+ ```ts
2434
+ class C {
2435
+ p: string = "";
2436
+ m() {
2437
+ console.log(this.p);
2438
+ }
2439
+ q(r: string) {
2440
+ return this.p == r;
2441
+ }
2442
+ }
2443
+ ```