ts用print替换console.log函数

这是一个关于JavaScript中使用`any`类型的示例,展示了一个名为`print`的通用函数,它接受任意数量和类型的参数并通过`console.log`进行打印。此函数体现了JavaScript的灵活性,允许开发者在不明确类型的情况下进行操作。
export function print(...args: any[]){
  console.log(...args)
}

 

// SPDX-License-Identifier: MIT pragma solidity ^0.8.26; import "../../src/common/ERC20.sol"; import "../../src/common/IERC20.sol"; import "../../src/vault_inflation_attack/Vault.sol"; import "forge-std/Test.sol"; import "forge-std/console.sol"; contract Vault_Test is Test{ ERC20 token; Vault vault; address user0; address user1; constructor(){ token=new ERC20("MyToken","MK",18); vault=new Vault(address(token)); user0=address(1); user1=address(2); // token.mint(user0,200 ether); token.mint(user1,200 ether); vm.prank(user0); token.approve(address(vault),UINT256_MAX); vm.prank(user1); token.approve(address(vault),UINT256_MAX); } // User 0 deposits 1 // User 0 transfer 100 * 1e18 // User 1 deposits 100 * 1e18 // User 0 withdraws all 200 * 1e18 + 1 function test_inflation() public{ // User 0 deposits 1 vm.prank(user0); vault.deposit(1); print(); // User 0 transfer 100 * 1e18 vm.prank(user0); token.transfer(address(vault),100 ether); print(); // User 1 deposits 100 * 1e18 vm.prank(user1); vault.deposit(100 ether); print(); // User 0 withdraws all 200 * 1e18 + 1 vm.prank(user0); vault.withdraw(1); print(); vm.assertEq(token.balanceOf(user0),300 ether); vm.assertEq(vault.balanceOf(user1),0); } function print() view private{ console.log("======print result======"); //user0 balance console.log("user0 balance=>",token.balanceOf(user0)); //user1 balance console.log("user1 balance=>",token.balanceOf(user1)); //user0 share console.log("user0 share=>",vault.balanceOf(user0)); //user1 share console.log("user1 share=>",vault.balanceOf(user1)); //vault share console.log("vault share=>",vault.totalSupply()); } } 给我转换成hardhat可以识别的测试文档
07-31
<template> <div id="app" class="onlyoffice-app"> <div id="editor" ref="editor"></div> </div> </template> <script setup> import { getOnlyOfficeToken } from '@/common/ts/api/wwApi' import { defineComponent, ref,onMounted,onUnmounted } from 'vue'; import { onLoad } from '@dcloudio/uni-app'; import { useRoute } from 'vue-router' const editor = ref(null); let docEditor = null; let openUrl = '' const route = useRoute() onLoad((options) => { if (options.openUrl) { openUrl = decodeURIComponent(options.openUrl); console.log('接收到的 openUrl:', openUrl); } }); // 生命周期钩子 onMounted(() => { openUrl = decodeURIComponent(route.query.openUrl); console.log(`🚀 ~ initOnlyOffice ~ config.document.openUrl.split(".").pop():`, openUrl.split(".").pop()) const script = document.createElement('script'); const onlyOfficeUrl = import.meta.env.VITE_ONLY_OFFICE_SERVER; script.type = 'text/javascript'; script.src = `${onlyOfficeUrl}/web-apps/apps/api/documents/api.js?preload=placeholder`; script.onload = () => { if (openUrl) { loadDocumentFromUrl(openUrl); // loadDocumentFromUrl('http://dfs.dev.rosino.com:9000/cm-rsri/20250801/d6b3b2cf92e64a81a6f2c8013acafc3c-走访思考总结模板.xlsx'); // loadDocumentFromUrl('https://mzy-outernet-dev.rosino.com/out/file/biz-mit/public/20250806/c9ee802a7ef94ae59a9121dae112eb33.xlsm'); } }; script.onerror = (err) => { console.log("🚀 ~ onMounted ~ err:", err) }; document.head.appendChild(script); const iframe = document.getElementById('editor').querySelector('iframe'); console.log("🚀 ~ checkIframe ~ iframe:", iframe) console.log("🚀 ~ checkIframe ~ iframe:", iframe) console.log("🚀 ~ checkIframe ~ iframe:", iframe) if (iframe && iframe.contentDocument) { clearInterval(checkIframe); const style = iframe.contentDocument.createElement('style'); style.textContent = ` .asc-window, .asc-toolbar, .asc-sidebar, .asc-statusbar { display: none !important; } .asc-editor-container, .asc-inner { margin: 0 !important; padding: 0 !important; } #toolbar, #sidebar, #statusbar { display: none !important; } `; iframe.contentDocument.head.appendChild(style); } }); const getFileNameFromUrl = (url) => { return url.substring(url.lastIndexOf("/") + 1); }; const loadDocumentFromUrl = (fileUrl) => { if (!fileUrl || !fileUrl.trim()) { console.log("文件URL不能为空", "error"); return; } initOnlyOffice(fileUrl); }; const initOnlyOffice = async (fileUrl) => { const fileNameFromUrl = getFileNameFromUrl(fileUrl); try { if (docEditor) docEditor.destroyEditor(); } catch (error) { console.log("error: ", error); } let config = { document: { title: fileNameFromUrl, url: fileUrl, fileType: fileUrl.split(".").pop(), key: `doc_${Date.now()}_${Math.random()}`, permissions: { download: false, print: false, comment: false, copy: false, modifyFilter: false, modifyContentControl: false, edit: false, review: false, protectScheme: false, }, }, editorConfig: { lang: "zh-CN", mode: "view", deviceType: null, canCoAuthoring: false, user: { id: "anonymous", name: "Anonymous", }, coEditing: { mode: "fast", change: false, }, permissions: { download: false, print: false, chat: false, // 正确的设置位置 select: false, copy: false }, customization: { about: false, compactToolbar: true, help: false, feedback: false, goback: false, comments: false, select: false, copy: false }, }, }; let token = await getToken(config); config = { ...config, token: token.data }; try { docEditor = new DocsAPI.DocEditor("editor", config); } catch (error) { setTimeout(() => { initOnlyOffice(fileUrl); }, 1500); } }; // 获取token const getToken = async (data) => { let result = await getOnlyOfficeToken(encodeURIComponent(JSON.stringify(data))); return result; }; onUnmounted(() => { if (docEditor) { docEditor.destroyEditor(); } }); </script> <style scoped> #app { width: 100%; height: 100%; margin: 0; padding: 10px; background-color: #fff; box-sizing: border-box; display: flex; flex-direction: column; padding-right: 0px; } #editor { width: 100%; height: 100%; min-height: 50px; } #toolbar { padding: 10px !important; display: none !important; } .onlyoffice-app { margin-top: -37px !important; margin-left: -39px !important; width: calc(100% + 42px) !important; height: calc(100vh + 37px) !important; } .layout-item{ top: 0 !important; left: -10px; } </style> <style> body { font-family: Arial, sans-serif; margin: 0; padding: 0; background-color: #f4f4f4; height: 100%; overflow: hidden; } </style>获取不到iframe
最新发布
09-05
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值